// source --> //www.pixopa.com/wp-content/themes/pixopa-new/framework/js/jquery.easing.min.js?ver=5.4.1 /* * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ * * Uses the built in easing capabilities added In jQuery 1.1 * to offer multiple easing options * * TERMS OF USE - jQuery Easing * * Open source under the BSD License. * * Copyright å© 2008 George McGinley Smith * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the name of the author nor the names of contributors may be used to endorse * or promote products derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * */ jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g //www.pixopa.com/wp-content/themes/pixopa-new/framework/js/jquery.magnific-popup.js?ver=1.1.0 /*! Magnific Popup - v1.1.0 - 2016-02-20 * http://dimsemenov.com/plugins/magnific-popup/ * Copyright (c) 2016 Dmitry Semenov; */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("
");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'
',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'
',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()}); // source --> //www.pixopa.com/wp-content/themes/pixopa-new/framework/js/jquery.simpleplaceholder.js?ver=5.4.1 /* * Simple Placeholder by @marcgg under MIT License * Report bugs or contribute on Gihub: https://github.com/marcgg/Simple-Placeholder */ (function(e){e.simplePlaceholder={placeholderClass:null,hidePlaceholder:function(){var t=e(this);if(t.val()==t.attr("placeholder")&&t.data(e.simplePlaceholder.placeholderData)){t.val("").removeClass(e.simplePlaceholder.placeholderClass).data(e.simplePlaceholder.placeholderData,false)}},showPlaceholder:function(){var t=e(this);if(t.val()==""){t.val(t.attr("placeholder")).addClass(e.simplePlaceholder.placeholderClass).data(e.simplePlaceholder.placeholderData,true)}},preventPlaceholderSubmit:function(){e(this).find(".simple-placeholder").each(function(t){var n=e(this);if(n.val()==n.attr("placeholder")&&n.data(e.simplePlaceholder.placeholderData)){n.val("")}});return true}};e.fn.simplePlaceholder=function(t){if(document.createElement("input").placeholder==undefined){var n={placeholderClass:"placeholding",placeholderData:"simplePlaceholder.placeholding"};if(t)e.extend(n,t);e.extend(e.simplePlaceholder,n);this.each(function(){var t=e(this);t.focus(e.simplePlaceholder.hidePlaceholder);t.blur(e.simplePlaceholder.showPlaceholder);t.data(e.simplePlaceholder.placeholderData,false);if(t.val()==""){t.val(t.attr("placeholder"));t.addClass(e.simplePlaceholder.placeholderClass);t.data(e.simplePlaceholder.placeholderData,true)}t.addClass("simple-placeholder");e(this.form).submit(e.simplePlaceholder.preventPlaceholderSubmit)})}return this}})(jQuery); // source --> //www.pixopa.com/wp-content/themes/pixopa-new/framework/js/imagesloaded.js?ver=5.4.1 /*! * imagesLoaded PACKAGED v3.1.4 * JavaScript is all like "You images are done yet or what?" * MIT License */ (function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,o=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,r=this.getListenersAsObject(e),o="object"==typeof n;for(i in r)r.hasOwnProperty(i)&&-1===t(r[i],n)&&r[i].push(o?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&(i=t(o[r],n),-1!==i&&o[r].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,r,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)o.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(r=t[i])&&("function"==typeof r?o.call(this,i,r):s.call(this,i,r));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,r,o,s=this.getListenersAsObject(e);for(r in s)if(s.hasOwnProperty(r))for(i=s[r].length;i--;)n=s[r][i],n.once===!0&&this.removeListener(e,n.listener),o=n.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return r.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}).call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var r=function(){};n.removeEventListener?r=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(r=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var o={bind:i,unbind:r};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof exports?module.exports=t(e,require("eventEmitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(this,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function r(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(r(e))t=e;else if("number"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),a&&(this.jqDeferred=new a.Deferred);var r=this;setTimeout(function(){r.check()})}function c(e){this.img=e}function f(e){this.src=e,v[e]=this}var a=e.jQuery,u=e.console,h=u!==void 0,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);for(var i=n.querySelectorAll("img"),r=0,o=i.length;o>r;r++){var s=i[r];this.addImage(s)}}},s.prototype.addImage=function(e){var t=new c(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log("confirm",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return this.complete(),void 0;for(var r=0;i>r;r++){var o=this.images[r];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),c.prototype=new t,c.prototype.check=function(){var e=v[this.img.src]||new f(this.img.src);if(e.isConfirmed)return this.confirm(e.isLoaded,"cached was confirmed"),void 0;if(this.img.complete&&void 0!==this.img.naturalWidth)return this.confirm(0!==this.img.naturalWidth,"naturalWidth"),void 0;var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},c.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var v={};return f.prototype=new t,f.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},f.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},f.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},f.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},f.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},f.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}); // source --> //www.pixopa.com/wp-content/themes/pixopa-new/framework/js/us.core.js?ver=3.1 /** * UpSolution Theme Core JavaScript Code * * @requires jQuery */ if (window.$us === undefined) window.$us = {}; /** * Retrieve/set/erase dom modificator class _ for UpSolution CSS Framework * @param {String} mod Modificator namespace * @param {String} [value] Value * @returns {string|jQuery} */ jQuery.fn.usMod = function(mod, value){ if (this.length == 0) return this; // Remove class modificator if (value === false) { this.get(0).className = this.get(0).className.replace(new RegExp('(^| )' + mod + '\_[a-z0-9]+( |$)'), '$2'); return this; } var pcre = new RegExp('^.*?' + mod + '\_([a-z0-9]+).*?$'), arr; // Retrieve modificator if (value === undefined) { return (arr = pcre.exec(this.get(0).className)) ? arr[1] : false; } // Set modificator else { this.usMod(mod, false).get(0).className += ' ' + mod + '_' + value; return this; } }; /** * Convert data from PHP to boolean the right way * @param {mixed} value * @returns {Boolean} */ $us.toBool = function(value){ if (typeof value == 'string') return (value == 'true' || value == 'True' || value == 'TRUE' || value == '1'); if (typeof value == 'boolean') return value; return !!parseInt(value); }; // Fixing hovers for devices with both mouse and touch screen jQuery.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); jQuery('html').toggleClass('no-touch', !jQuery.isMobile); /** * Commonly used jQuery objects */ !function($){ $us.$window = $(window); $us.$document = $(document); $us.$html = $('html'); $us.$body = $('.l-body:first'); $us.$htmlBody = $us.$html.add($us.$body); $us.$canvas = $('.l-canvas:first'); }(jQuery); /** * $us.canvas * * All the needed data and functions to work with overall canvas. */ !function($){ "use strict"; function USCanvas(options){ // Setting options var defaults = { disableEffectsWidth: 900, responsive: true }; this.options = $.extend({}, defaults, options || {}); // Commonly used dom elements this.$header = $us.$canvas.find('.l-header'); this.$main = $us.$canvas.find('.l-main'); this.$titlebar = $us.$canvas.find('.l-titlebar'); this.$sections = $us.$canvas.find('.l-section'); this.$firstSection = this.$sections.first(); this.$fullscreenSections = this.$sections.filter('.height_full'); this.$topLink = $('.w-toplink'); // Canvas modificators this.sidebar = $us.$canvas.usMod('sidebar'); this.type = $us.$canvas.usMod('type'); // Initial header position this._headerPos = this.$header.usMod('pos'); // Current header position this.headerPos = this._headerPos; this.headerBg = this.$header.usMod('bg'); this.rtl = $us.$body.hasClass('rtl'); // Will be used to count fullscreen sections heights and proper scroll positions this.scrolledOccupiedHeight = 0; // Boundable events this._events = { scroll: this.scroll.bind(this), resize: this.resize.bind(this) }; $us.$window.on('scroll', this._events.scroll); $us.$window.on('resize load', this._events.resize); // Complex logics requires two initial renders: before inner elements render and after setTimeout(this._events.resize, 25); setTimeout(this._events.resize, 75); } USCanvas.prototype = { /** * Scroll-driven logics */ scroll: function(){ var scrollTop = parseInt($us.$window.scrollTop()); // Show/hide go to top link this.$topLink.toggleClass('active', (scrollTop >= this.winHeight)); }, /** * Resize-driven logics */ resize: function(){ // Window dimensions this.winHeight = parseInt($us.$window.height()); this.winWidth = parseInt($us.$window.width()); // Disabling animation on mobile devices $us.$body.toggleClass('disable_effects', (this.winWidth <= this.options.disableEffectsWidth)); // Updating fullscreen sections if (this.$fullscreenSections.length > 0) { this.$fullscreenSections.each(function(index, section){ var $section = $(section), sectionHeight = this.winHeight, isFirstSection = (index == 0 && this.$titlebar.length == 0 && $section.is(this.$firstSection)); // First section if (isFirstSection) { sectionHeight -= $section.offset().top; } // 2+ sections else { sectionHeight -= $us.header.scrolledOccupiedHeight; } $section.css('min-height', sectionHeight); if ($section.hasClass('valign_center')) { var $sectionH = $section.find('.l-section-h'), sectionTopPadding = parseInt($section.css('padding-top')), contentHeight = $sectionH.outerHeight(), topMargin; $sectionH.css('margin-top', ''); // Section was extended by extra top padding that is overlapped by fixed solid header and not visible var sectionOverlapped = isFirstSection && $us.header.pos == 'fixed' && $us.header.bg != 'transparent' && $us.header.orientation != 'ver'; if (sectionOverlapped) { // Part of first section is overlapped by header topMargin = Math.max(0, (sectionHeight - sectionTopPadding - contentHeight) / 2); } else { topMargin = Math.max(0, (sectionHeight - contentHeight) / 2 - sectionTopPadding); } $sectionH.css('margin-top', topMargin || ''); } $section.find('.upb_row_bg').css('min-height', $section.height()); }.bind(this)); $us.$canvas.trigger('contentChange'); } // Fix scroll glitches that could occur after the resize this.scroll(); } }; $us.canvas = new USCanvas($us.canvasOptions || {}); }(jQuery); /** * $us.header * Dev note: should be initialized after $us.canvas */ !function($){ "use strict"; function USHeader(settings){ this.settings = settings || {}; this.state = 'default'; // 'tablets' / 'mobiles' this.$container = $us.$canvas.find('.l-header'); this.$topCell = this.$container.find('.l-subheader.at_top .l-subheader-cell:first'); this.$middleCell = this.$container.find('.l-subheader.at_middle .l-subheader-cell:first'); this.$bottomCell = this.$container.find('.l-subheader.at_bottom .l-subheader-cell:first'); this.$showBtn = $('.w-header-show:first'); this.orientation = $us.$body.usMod('header'); this.pos = this.$container.usMod('pos'); // 'fixed' / 'static' this.bg = this.$container.usMod('bg'); // 'solid' / 'transparent' // Will be used to count fullscreen sections heights and proper scroll positions this.scrolledOccupiedHeight = 0; this._events = { scroll: this.scroll.bind(this), resize: this.resize.bind(this), contentChange: function(){ this._countScrollable(); }.bind(this), hideMobileVerticalHeader: function(e){ if ($.contains(this.$container[0], e.target)) return; $us.$body .off($.isMobile ? 'touchstart' : 'click', this._events.hideMobileVerticalHeader) .removeClass('header-show'); }.bind(this) }; this.$elms = {}; this.$places = { hidden: this.$container.find('.l-subheader.for_hidden') }; this.$container.find('.l-subheader-cell').each(function(index, cell){ var $cell = $(cell); this.$places[$cell.parent().parent().usMod('at') + '_' + $cell.usMod('at')] = $cell; }.bind(this)); var regexp = /(^| )ush_([a-z_]+)_([0-9]+)( |$)/; this.$container.find('[class*=ush_]').each(function(index, elm){ var $elm = $(elm), matches = regexp.exec($elm.attr('class')); if (!matches) return; var id = matches[2] + ':' + matches[3]; this.$elms[id] = $elm; if ($elm.is('.w-vwrapper, .w-hwrapper')) { this.$places[id] = $elm; } }.bind(this)); // TODO Objects with the header elements $us.$window.on('scroll', this._events.scroll); $us.$window.on('resize load', this._events.resize); this.resize(); $us.$canvas.on('contentChange', function(){ if (this.orientation == 'ver') this.docHeight = $us.$document.height(); }.bind(this)); this.$container.on('contentChange', this._events.contentChange); this.$showBtn.on('click', function(e){ if ($us.$body.hasClass('header-show')) return; e.stopPropagation(); $us.$body .addClass('header-show') .on($.isMobile ? 'touchstart' : 'click', this._events.hideMobileVerticalHeader); }.bind(this)); } $.extend(USHeader.prototype, { scroll: function(){ var scrollTop = parseInt($us.$window.scrollTop()); if (this.pos == 'fixed') { if (this.orientation == 'hor') { this.$container.toggleClass('sticky', scrollTop >= (this.settings[this.state].options.scroll_breakpoint || 100)); } else if (this.$container.hasClass('scrollable') && this.docHeight > this.headerHeight + this.htmlTopMargin) { var scrollRangeDiff = this.headerHeight - $us.canvas.winHeight + this.htmlTopMargin; if (this._sidedHeaderScrollRange === undefined) { this._sidedHeaderScrollRange = [0, scrollRangeDiff]; } if (scrollTop <= this._sidedHeaderScrollRange[0]) { this._sidedHeaderScrollRange[0] = Math.max(0, scrollTop); this._sidedHeaderScrollRange[1] = this._sidedHeaderScrollRange[0] + scrollRangeDiff; this.$container.css({ position: 'fixed', top: this.htmlTopMargin }); } else if (this._sidedHeaderScrollRange[0] < scrollTop && scrollTop < this._sidedHeaderScrollRange[1]) { this.$container.css({ position: 'absolute', top: this._sidedHeaderScrollRange[0] }); } else if (this._sidedHeaderScrollRange[1] <= scrollTop) { this._sidedHeaderScrollRange[1] = Math.min(this.docHeight - $us.canvas.winHeight, scrollTop); this._sidedHeaderScrollRange[0] = this._sidedHeaderScrollRange[1] - scrollRangeDiff; this.$container.css({ position: 'fixed', top: $us.canvas.winHeight - this.headerHeight }); } } } }, resize: function(){ var newState = 'default'; if (window.innerWidth <= 900) newState = (window.innerWidth <= 600) ? 'mobiles' : 'tablets'; this.setState(newState); if (this.pos == 'fixed' && this.orientation == 'hor') { var isSticky = this.$container.hasClass('sticky'); this.$container.addClass('notransition'); if (!isSticky) this.$container.addClass('sticky'); this.scrolledOccupiedHeight = this.$container.height(); if (!isSticky) this.$container.removeClass('sticky'); // Removing with a small delay to prevent css glitch setTimeout(function(){ this.$container.removeClass('notransition'); }.bind(this), 50); } else /*if (this.orientation == 'ver' || this.pos == 'static')*/ { this.scrolledOccupiedHeight = 0; } this._countScrollable(); this.scroll(); }, setState: function(newState){ if (newState == this.state) return; var newOrientation = this.settings[newState].options.orientation || 'hor', newPos = $us.toBool(this.settings[newState].options.sticky) ? 'fixed' : 'static', newBg = $us.toBool(this.settings[newState].options.transparent) ? 'transparent' : 'solid'; if (newOrientation == 'ver') { newPos = 'fixed'; newBg = 'solid'; } this.state = newState; // Don't change the order: orientation -> pos -> bg -> layout this._setOrientation(newOrientation); this._setPos(newPos); this._setBg(newBg); this._setLayout(this.settings[newState].layout || {}); $us.$body.usMod('state', newState); if (newState == 'default') $us.$body.removeClass('header-show'); // Updating the main menu because of dependencies if ($us.nav !== undefined) $us.nav.resize(); }, _setOrientation: function(newOrientation){ if (newOrientation == this.orientation) return; $us.$body.usMod('header', newOrientation); this.orientation = newOrientation; }, _countScrollable: function(){ if (this.orientation == 'ver' && this.pos == 'fixed' && this.state == 'default') { this.docHeight = $us.$document.height(); this.htmlTopMargin = parseInt($us.$html.css('margin-top')); this.headerHeight = this.$topCell.height() + this.$middleCell.height() + this.$bottomCell.height(); if (this.headerHeight > $us.canvas.winHeight - this.htmlTopMargin) { this.$container.addClass('scrollable'); } else if (this.$container.hasClass('scrollable')) { this.$container.removeClass('scrollable').resetInlineCSS('position', 'top', 'bottom'); delete this._sidedHeaderScrollRange; } if (this.headerHeight + this.htmlTopMargin >= this.docHeight) { this.$container.css({ position: 'absolute', top: 0 }); } } else if (this.$container.hasClass('scrollable')) { this.$container.removeClass('scrollable').resetInlineCSS('position', 'top', 'bottom'); delete this._sidedHeaderScrollRange; } }, _setPos: function(newPos){ if (newPos == this.pos) return; this.$container.usMod('pos', newPos); if (newPos == 'static') { this.$container.removeClass('sticky'); } this.pos = newPos; this._countScrollable(); }, _setBg: function(newBg){ if (newBg == this.bg) return; this.$container.usMod('bg', newBg); this.bg = newBg; }, /** * Recursive function to place elements based on their ids * @param {Array} elms * @param {jQuery} $place * @private */ _placeElements: function(elms, $place){ for (var i = 0; i < elms.length; i++) { var elmId; if (typeof elms[i] == 'object') { // Wrapper elmId = elms[i][0]; if (this.$places[elmId] === undefined || this.$elms[elmId] === undefined) continue; this.$elms[elmId].appendTo($place); this._placeElements(elms[i].shift(), this.$places[elmId]); } else { // Element elmId = elms[i]; if (this.$elms[elmId] === undefined) continue; this.$elms[elmId].appendTo($place); } } }, _setLayout: function(newLayout){ // Retrieving the currently shown layout structure var curLayout = {}; $.each(this.$places, function(place, $place){ }.bind(this)); for (var place in newLayout) { if (!newLayout.hasOwnProperty(place) || this.$places[place] === undefined) continue; this._placeElements(newLayout[place], this.$places[place]); } } }); $us.header = new USHeader($us.headerSettings || {}); }(jQuery); /** * $us.nav * * Header navigation will all the possible states * * @requires $us.canvas */ !function($){ function USNav(){ // Commonly used dom elements this.$nav = $('.l-header .w-nav:first'); if (this.$nav.length == 0) return; this.$control = this.$nav.find('.w-nav-control'); this.$items = this.$nav.find('.w-nav-item'); this.$list = this.$nav.find('.w-nav-list.level_1'); this.$subItems = this.$list.find('.w-nav-item.menu-item-has-children'); this.$subAnchors = this.$list.find('.w-nav-item.menu-item-has-children > .w-nav-anchor'); this.$subLists = this.$list.find('.w-nav-item.menu-item-has-children > .w-nav-list'); this.$anchors = this.$nav.find('.w-nav-anchor'); // Setting options this.options = this.$nav.find('.w-nav-options:first')[0].onclick() || {}; // In case the nav doesn't exist, do nothing if (this.$nav.length == 0) return; this.type = this.$nav.usMod('type'); this.mobileOpened = false; this.animationType = this.$nav.usMod('animation'); var showFn = 'fadeInCSS', hideFn = 'fadeOutCSS'; if (this.animationType == 'height') { showFn = 'slideDownCSS'; hideFn = 'slideUpCSS'; } else if (this.animationType == 'mdesign') { showFn = 'showMD'; hideFn = 'hideMD'; } // Mobile menu toggler this.$control.on('click', function(){ this.mobileOpened = !this.mobileOpened; if (this.mobileOpened) { // Closing opened sublists this.$items.filter('.opened').removeClass('opened'); this.$subLists.resetInlineCSS('display', 'opacity', 'height', 'padding-top', 'padding-bottom', 'margin-top'); this.$list.slideDownCSS(250, this._events.contentChanged); } else { this.$list.slideUpCSS(250, this._events.contentChanged); } }.bind(this)); // Boundable events this._events = { // Mobile submenu togglers toggle: function(e){ if (this.type != 'mobile') return; e.stopPropagation(); e.preventDefault(); var $item = $(e.currentTarget).closest('.w-nav-item'), $sublist = $item.children('.w-nav-list'); if ($item.hasClass('opened')) { $item.removeClass('opened'); $sublist.slideUpCSS(250, this._events.contentChanged); } else { $item.addClass('opened'); $sublist.slideDownCSS(250, this._events.contentChanged); } }.bind(this), resize: this.resize.bind(this), contentChanged: function(){ if (this.type == 'mobile' && $us.header.orientation == 'hor' && $us.canvas.headerPos == 'fixed') { this.setFixedMobileMaxHeight(); } $us.header.$container.trigger('contentChange'); }.bind(this) }; // Toggle on item clicks if (this.options.mobileBehavior) { this.$subAnchors.on('click', this._events.toggle); } // Toggle on arrows else { this.$list.find('.w-nav-item.menu-item-has-children > .w-nav-anchor > .w-nav-arrow').on('click', this._events.toggle); } // Mark all the togglable items this.$subItems.each(function(){ var $this = $(this), $parentItem = $this.parent().closest('.w-nav-item'); if ($parentItem.length == 0 || $parentItem.usMod('columns') === false) $this.addClass('togglable'); }); // Touch device handling in default (notouch) layout if (!$us.$html.hasClass('no-touch')) { this.$list.find('.w-nav-item.menu-item-has-children.togglable > .w-nav-anchor').on('click', function(e){ if (this.type == 'mobile') return; e.preventDefault(); var $this = $(e.currentTarget), $item = $this.parent(), $list = $item.children('.w-nav-list'); // Second tap: going to the URL if ($item.hasClass('opened')) return location.assign($this.attr('href')); $list[showFn](); $item.addClass('opened'); var outsideClickEvent = function(e){ if ($.contains($item[0], e.target)) return; $item.removeClass('opened'); $list[hideFn](); $us.$body.off('touchstart', outsideClickEvent); }; $us.$body.on('touchstart', outsideClickEvent); }.bind(this)); } // Desktop device hovers else { this.$subItems .filter('.togglable') .on('mouseenter', function(e){ if (this.type == 'mobile') return; var $list = $(e.currentTarget).children('.w-nav-list'); $list[showFn](); }.bind(this)) .on('mouseleave', function(e){ if (this.type == 'mobile') return; var $list = $(e.currentTarget).children('.w-nav-list'); $list[hideFn](); }.bind(this)); } // Close menu on anchor clicks this.$anchors.on('click', function(e){ if (this.type != 'mobile' || $us.header.orientation != 'hor') return; // Toggled the item if (this.options.mobileBehavior && $(e.currentTarget).closest('.w-nav-item').hasClass('menu-item-has-children')) return; this.$list.slideUpCSS(); this.mobileOpened = false; }.bind(this)); $us.$window.on('resize', this._events.resize); setTimeout(function(){ this.resize(); $us.header.$container.trigger('contentChange'); }.bind(this), 50); } USNav.prototype = { /** * Count proper dimensions */ setFixedMobileMaxHeight: function(){ var listTop = Math.min(this.$list.position().top, $us.header.scrolledOccupiedHeight); this.$list.css('max-height', $us.canvas.winHeight - listTop + 'px'); }, /** * Resize handler */ resize: function(){ if (this.$nav.length == 0) return; var nextType = (window.innerWidth <= this.options.mobileWidth) ? 'mobile' : 'desktop'; if ($us.header.orientation != this.headerOrientation || nextType != this.type) { // Clearing the previous state this.$subLists.resetInlineCSS('display', 'opacity', 'height', 'padding-top', 'padding-bottom', 'margin-top'); if (this.headerOrientation == 'hor' && this.type == 'mobile') { this.$list.resetInlineCSS('height', 'max-height', 'display', 'opacity', 'padding-top', 'padding-bottom'); } // Closing opened sublists this.$items.removeClass('opened'); // Applying the new state if ($us.header.orientation == 'hor') { if (nextType == 'desktop') { this.$items.filter('.togglable').children('.w-nav-list').css('display', 'none'); } else if (nextType == 'mobile') { this.mobileOpened = false; this.$list.css('height', 0); this.$subLists.css('height', 0); } } this.headerOrientation = $us.header.orientation; this.type = nextType; this.$nav.usMod('type', nextType); } // Max-height limitation for fixed header layouts if ($us.header.orientation == 'hor' && this.type == 'mobile' && $us.canvas.headerPos == 'fixed') this.setFixedMobileMaxHeight(); this.$list.removeClass('hidden'); } }; $us.nav = new USNav(); }(jQuery); /** * $us.scroll * * ScrollSpy, Smooth scroll links and hash-based scrolling all-in-one * * @requires $us.canvas */ !function($){ "use strict"; function USScroll(options){ // Setting options var defaults = { /** * @param {String|jQuery} Selector or object of hash scroll anchors that should be attached on init */ attachOnInit: '.w-nav a[href*="#"], .w-menu a[href*="#"], a.w-btn[href*="#"], .w-iconbox a[href*="#"], .w-image a[href*="#"], .w-img a[href*="#"], .w-text a[href*="#"], ' + '.vc_icon_element a[href*="#"], .vc_custom_heading a[href*="#"], a.w-portfolio-item-anchor[href*="#"], .widget_nav_menu a[href*="#"], .w-toplink, ' + '.w-blog-post-meta-comments a[href*="#"], .w-comments-title a[href*="#"], .w-comments-item-date, a.smooth-scroll[href*="#"]', /** * @param {String} Classname that will be toggled on relevant buttons */ buttonActiveClass: 'active', /** * @param {String} Classname that will be toggled on relevant menu items */ menuItemActiveClass: 'current-menu-item', /** * @param {String} Classname that will be toggled on relevant menu ancestors */ menuItemAncestorActiveClass: 'current-menu-ancestor', /** * @param {Number} Duration of scroll animation */ animationDuration: 1200, /** * @param {String} Easing for scroll animation */ animationEasing: 'easeInOutQuint' }; this.options = $.extend({}, defaults, options || {}); // Hash blocks with targets and activity indicators this.blocks = {}; // Is scrolling to some specific block at the moment? this.isScrolling = false; // Waypoints that will be called at certain scroll position this.waypoints = []; // Boundable events this._events = { cancel: this.cancel.bind(this), scroll: this.scroll.bind(this), resize: this.resize.bind(this) }; this._canvasTopOffset = 0; $us.$window.on('resize load', this._events.resize); setTimeout(this._events.resize, 75); $us.$window.on('scroll', this._events.scroll); setTimeout(this._events.scroll, 75); if (this.options.attachOnInit) { this.attach(this.options.attachOnInit); } // Recount scroll positions on any content changes $us.$canvas.on('contentChange', this._countAllPositions.bind(this)); // Handling initial document hash if (document.location.hash && document.location.hash.indexOf('#!') == -1) { var hash = document.location.hash, scrollPlace = (this.blocks[hash] !== undefined) ? hash : undefined; if (scrollPlace === undefined) { try { var $target = $(hash); if ($target.length != 0) { scrollPlace = $target; } } catch (error) { //Do not have to do anything here since scrollPlace is already undefined } } if (scrollPlace !== undefined) { // While page loads, its content changes, and we'll keep the proper scroll on each sufficient content change // until the page finishes loading or user scrolls the page manually var keepScrollPositionTimer = setInterval(function(){ this.scrollTo(scrollPlace); }.bind(this), 100); var clearHashEvents = function(){ // Content size still may change via other script right after page load setTimeout(function(){ clearInterval(keepScrollPositionTimer); $us.canvas.resize(); this._countAllPositions(); this.scrollTo(scrollPlace); }.bind(this), 100); $us.$window.off('load touchstart mousewheel DOMMouseScroll touchstart', clearHashEvents); }.bind(this); $us.$window.on('load touchstart mousewheel DOMMouseScroll touchstart', clearHashEvents); } } } USScroll.prototype = { /** * Count hash's target position and store it properly * * @param {String} hash * @private */ _countPosition: function(hash){ this.blocks[hash].top = Math.ceil(this.blocks[hash].target.offset().top - $us.header.scrolledOccupiedHeight - this._canvasTopOffset); this.blocks[hash].bottom = this.blocks[hash].top + this.blocks[hash].target.outerHeight(false); }, /** * Count all targets' positions for proper scrolling * * @private */ _countAllPositions: function(){ // Take into account #wpadminbar (and others possible) offset this._canvasTopOffset = $us.$canvas.offset().top; for (var hash in this.blocks) { if (!this.blocks.hasOwnProperty(hash)) continue; this._countPosition(hash); } // Counting waypoints for (var i = 0; i < this.waypoints.length; i++) { this._countWaypoint(this.waypoints[i]); } }, /** * Indicate scroll position by hash * * @param {String} activeHash * @private */ _indicatePosition: function(activeHash){ var activeMenuAncestors = []; for (var hash in this.blocks) { if (!this.blocks.hasOwnProperty(hash)) continue; if (this.blocks[hash].buttons !== undefined) { this.blocks[hash].buttons.toggleClass(this.options.buttonActiveClass, hash === activeHash); } if (this.blocks[hash].menuItems !== undefined) { this.blocks[hash].menuItems.toggleClass(this.options.menuItemActiveClass, hash === activeHash); } if (this.blocks[hash].menuAncestors !== undefined) { this.blocks[hash].menuAncestors.removeClass(this.options.menuItemAncestorActiveClass); } } if (this.blocks[activeHash] !== undefined && this.blocks[activeHash].menuAncestors !== undefined) { this.blocks[activeHash].menuAncestors.addClass(this.options.menuItemAncestorActiveClass); } }, /** * Attach anchors so their targets will be listened for possible scrolls * * @param {String|jQuery} anchors Selector or list of anchors to attach */ attach: function(anchors){ // Location pattern to check absolute URLs for current location var locationPattern = new RegExp('^' + location.pathname.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") + '#'); var $anchors = $(anchors); if ($anchors.length == 0) return; $anchors.each(function(index, anchor){ var $anchor = $(anchor), href = $anchor.attr('href'), hash = $anchor.prop('hash'); // Ignoring ajax links if (hash.indexOf('#!') != -1) return; // Checking if the hash is connected with the current page if (!( // Link type: #something href.charAt(0) == '#' || // Link type: /#something (href.charAt(0) == '/' && locationPattern.test(href)) || // Link type: http://example.com/some/path/#something href.indexOf(location.host + location.pathname + '#') > -1 )) return; // Do we have an actual target, for which we'll need to count geometry? if (hash != '' && hash != '#') { // Attach target if (this.blocks[hash] === undefined) { var $target = $(hash); // Don't attach anchors that actually have no target if ($target.length == 0) return; // If it's the only row in a submain, than use submain instead if ($target.hasClass('g-cols') && $target.parent().children().length == 1) { $target = $target.closest('.l-section'); } this.blocks[hash] = { target: $target }; this._countPosition(hash); } // Attach activity indicator if ($anchor.hasClass('w-nav-anchor')) { var $menuIndicator = $anchor.closest('.w-nav-item'); this.blocks[hash].menuItems = (this.blocks[hash].menuItems || $()).add($menuIndicator); var $menuAncestors = $menuIndicator.parents('.menu-item-has-children'); if ($menuAncestors.length > 0) { this.blocks[hash].menuAncestors = (this.blocks[hash].menuAncestors || $()).add($menuAncestors); } } else { this.blocks[hash].buttons = (this.blocks[hash].buttons || $()).add($anchor); } } $anchor.on('click', function(event){ event.preventDefault(); this.scrollTo(hash, true); }.bind(this)); }.bind(this)); }, /** * Scroll page to a certain position or hash * * @param {Number|String|jQuery} place * @param {Boolean} animate */ scrollTo: function(place, animate){ var placeType, newY; // Scroll to top if (place == '' || place == '#') { newY = 0; placeType = 'top'; } // Scroll by hash else if (this.blocks[place] !== undefined) { newY = this.blocks[place].top; placeType = 'hash'; } else if (place instanceof $) { newY = Math.floor(place.offset().top - $us.header.scrolledOccupiedHeight - this._canvasTopOffset); placeType = 'element'; } else { newY = Math.floor(place - $us.header.scrolledOccupiedHeight - this._canvasTopOffset); } var indicateActive = function(){ if (placeType == 'hash') { this._indicatePosition(place); } else { this.scroll(); } }.bind(this); if (animate) { this.isScrolling = true; $us.$htmlBody.stop(true, false).animate({ scrollTop: newY + 'px' }, { duration: this.options.animationDuration, easing: this.options.animationEasing, always: function(){ $us.$window.off('keydown mousewheel DOMMouseScroll touchstart', this._events.cancel); this.isScrolling = false; indicateActive(); }.bind(this) }); // Allow user to stop scrolling manually $us.$window.on('keydown mousewheel DOMMouseScroll touchstart', this._events.cancel); } else { $us.$htmlBody.stop(true, false).scrollTop(newY); indicateActive(); } }, /** * Cancel scroll */ cancel: function(){ $us.$htmlBody.stop(true, false); }, /** * Add new waypoint * * @param {jQuery} $elm object with the element * @param {mixed} offset Offset from bottom of screen in pixels ('100') or percents ('20%') * @param {Function} fn The function that will be called */ addWaypoint: function($elm, offset, fn){ $elm = ($elm instanceof $) ? $elm : $($elm); if ($elm.length == 0) return; if (typeof offset != 'string' || offset.indexOf('%') == -1) { // Not percent: using pixels offset = parseInt(offset); } var waypoint = { $elm: $elm, offset: offset, fn: fn }; this._countWaypoint(waypoint); this.waypoints.push(waypoint); }, /** * * @param {Object} waypoint * @private */ _countWaypoint: function(waypoint){ var elmTop = waypoint.$elm.offset().top, winHeight = $us.$window.height(); if (typeof waypoint.offset == 'number') { // Offset is defined in pixels waypoint.scrollPos = elmTop - winHeight + waypoint.offset; } else { // Offset is defined in percents waypoint.scrollPos = elmTop - winHeight + winHeight * parseInt(waypoint.offset) / 100; } }, /** * Scroll handler */ scroll: function(){ var scrollTop = parseInt($us.$window.scrollTop()); if (!this.isScrolling) { var activeHash; for (var hash in this.blocks) { if (!this.blocks.hasOwnProperty(hash)) continue; if (scrollTop >= this.blocks[hash].top && scrollTop < this.blocks[hash].bottom) { activeHash = hash; break; } } this._indicatePosition(activeHash); } // Handling waypoints for (var i = 0; i < this.waypoints.length; i++) { if (this.waypoints[i].scrollPos < scrollTop) { this.waypoints[i].fn(this.waypoints[i].$elm); this.waypoints.splice(i, 1); i--; } } }, /** * Resize handler */ resize: function(){ // Delaying the resize event to prevent glitches setTimeout(function(){ this._countAllPositions(); this.scroll(); }.bind(this), 150); this._countAllPositions(); this.scroll(); } }; $(function(){ $us.scroll = new USScroll($us.scrollOptions || {}); }); }(jQuery); jQuery(function($){ "use strict"; // TODO Move all of the below to us.widgets if ($.fn.magnificPopup) { $('.product .images').magnificPopup({ type: 'image', delegate: 'a.with-lightbox', gallery: { enabled: true, navigateByImgClick: true, preload: [0, 1], tPrev: $us.langOptions.magnificPopup.tPrev, // Alt text on left arrow tNext: $us.langOptions.magnificPopup.tNext, // Alt text on right arrow tCounter: $us.langOptions.magnificPopup.tCounter // Markup for "1 of 7" counter }, removalDelay: 300, mainClass: 'mfp-fade', fixedContentPos: false }); $('a[ref=magnificPopup][class!=direct-link]').magnificPopup({ type: 'image', fixedContentPos: false }); } if ($.fn.revolution) { $('.fullwidthbanner').revolution({ delay: 9000, startwidth: 1140, startheight: 500, soloArrowLeftHOffset: 20, soloArrowLeftVOffset: 0, soloArrowRightHOffset: 20, soloArrowRightVOffset: 0, onHoverStop: "on", // Stop Banner Timet at Hover on Slide on/off fullWidth: "on", hideThumbs: false, shadow: 0 //0 = no Shadow, 1,2,3 = 3 Different Art of Shadows - (No Shadow in Fullwidth Version !) }); // Redrawing all the Revolution Sliders if (window.revapi3 !== undefined && window.revapi3.revredraw !== undefined) { $us.$window.on('resize', function(){ window.revapi3.revredraw(); }); } } $('.animate_fade, .animate_afc, .animate_afl, .animate_afr, .animate_aft, .animate_afb, .animate_wfc, ' + '.animate_hfc, .animate_rfc, .animate_rfl, .animate_rfr').each(function(){ $us.scroll.addWaypoint($(this), '15%', function($elm){ if (!$elm.hasClass('animate_start')) { setTimeout(function(){ $elm.addClass('animate_start'); }, 20); } }); }); $('.wpb_animate_when_almost_visible').each(function(){ $us.scroll.addWaypoint($(this), '15%', function($elm){ if (!$elm.hasClass('wpb_start_animation')) { setTimeout(function(){ $elm.addClass('wpb_start_animation'); }, 20); } }); }); var $submainVideos = $('.l-section-video'); var updateVideosSizes = function(){ $submainVideos.each(function(){ var $this = $(this), $video = $this.find('video'), player = $video.data('mediaelementplayer'); // Hiding videos on small (some mobiles) resolutions if ($us.canvas.winWidth <= 1024) { if (player && player.pause && !player.media.paused) { player.pause(); } return $this.hide(); } var mejsContainer = $this.find('.mejs-container'), poster = $this.find('.mejs-mediaelement img'), videoWidth = $video.attr('width'), videoHeight = $video.attr('height'), videoProportion = videoWidth / videoHeight, parent = $this.parent(), parentWidth = parent.outerWidth(), parentHeight = parent.outerHeight(), proportion, centerX, centerY; if (mejsContainer.length == 0) return; // Proper sizing // if (video.length > 0 && video[0].player && video[0].player.media) videoWidth = video[0].player.media.videoWidth; // if (video.length > 0 && video[0].player && video[0].player.media) videoHeight = video[0].player.media.videoHeight; if (player && player.play && player.media.paused) { player.play(); } $this.show(); parent.find('span.mejs-offscreen').hide(); proportion = (parentWidth / parentHeight > videoWidth / videoHeight) ? parentWidth / videoWidth : parentHeight / videoHeight; $this.width(proportion * videoWidth); $this.height(proportion * videoHeight); poster.width(proportion * videoWidth); poster.height(proportion * videoHeight); centerX = (parentWidth < videoWidth * proportion) ? (parentWidth - videoWidth * proportion) / 2 : 0; centerY = (parentHeight < videoHeight * proportion) ? (parentHeight - videoHeight * proportion) / 2 : 0; $this.css({left: centerX, top: centerY}); mejsContainer.css({width: '100%', height: '100%'}); $video.css({'object-fit': 'cover', display: 'inline-block'}); }); }; if (window.MediaElementPlayer) { $('.l-section-video video').mediaelementplayer({ enableKeyboard: false, iPadUseNativeControls: false, pauseOtherPlayers: false, iPhoneUseNativeControls: false, AndroidUseNativeControls: false, videoWidth: '100%', videoHeight: '100%', success: function(mediaElement, domObject){ $(domObject).css('display', 'block'); updateVideosSizes(); } }); setTimeout(updateVideosSizes, 75); $us.$window.on('resize load', updateVideosSizes); } jQuery('input[type="text"], input[type="email"], textarea').each(function(index, input){ var $input = $(input), $row = $input.closest('.w-form-row'); if ($input.attr('type') == 'hidden') return; $row.toggleClass('not-empty', $input.val() != ''); $input.on('input', function(){ $row.toggleClass('not-empty', $input.val() != ''); }); }); jQuery('.l-section-img, .l-titlebar-img').each(function(){ var $this = $(this), img = new Image(); img.onload = function(){ if (!$this.hasClass('loaded')) { $this.addClass('loaded') } }; img.src = ($this.css('background-image') || '').replace(/url\(['"]*(.*?)['"]*\)/g, '$1'); }); /* Ultimate Addons for Visual Composer integration */ jQuery('.upb_bg_img, .upb_color, .upb_grad, .upb_content_iframe, .upb_content_video, .upb_no_bg').each(function(){ var $bg = jQuery(this), $prev = $bg.prev(); if ($prev.length == 0) { var $parent = $bg.parent(), $parentParent = $parent.parent(), $prevParentParent = $parentParent.prev(); if ($prevParentParent.length) { $bg.insertAfter($prevParentParent); if ($parent.children().length == 0) { $parentParent.remove(); } } } }); $('.g-cols > .ult-item-wrap').each(function(index, elm){ var $elm = jQuery(elm); $elm.replaceWith($elm.children()); }); jQuery('.overlay-show').click(function(){ window.setTimeout(function(){ $us.$canvas.trigger('contentChange'); }, 1000); }); }); /** * CSS-analog of jQuery slideDown/slideUp/fadeIn/fadeOut functions (for better rendering) */ !function(){ /** * Remove the passed inline CSS attributes. * * Usage: $elm.resetInlineCSS('height', 'width'); */ jQuery.fn.resetInlineCSS = function(){ for (var index = 0; index < arguments.length; index++) { this.css(arguments[index], ''); } return this; }; jQuery.fn.clearPreviousTransitions = function(){ // Stopping previous events, if there were any var prevTimers = (this.data('animation-timers') || '').split(','); if (prevTimers.length >= 2) { this.resetInlineCSS('transition', '-webkit-transition'); prevTimers.map(clearTimeout); this.removeData('animation-timers'); } return this; }; /** * * @param {Object} css key-value pairs of animated css * @param {Number} duration in milliseconds * @param {Function} onFinish * @param {String} easing CSS easing name * @param {Number} delay in milliseconds */ jQuery.fn.performCSSTransition = function(css, duration, onFinish, easing, delay){ duration = duration || 250; delay = delay || 25; easing = easing || 'ease-in-out'; var $this = this, transition = []; this.clearPreviousTransitions(); for (var attr in css) { if (!css.hasOwnProperty(attr)) continue; transition.push(attr + ' ' + (duration / 1000) + 's ' + easing); } transition = transition.join(', '); $this.css({ transition: transition, '-webkit-transition': transition }); // Starting the transition with a slight delay for the proper application of CSS transition properties var timer1 = setTimeout(function(){ $this.css(css); }, delay); var timer2 = setTimeout(function(){ $this.resetInlineCSS('transition', '-webkit-transition'); if (typeof onFinish == 'function') onFinish(); }, duration + delay); this.data('animation-timers', timer1 + ',' + timer2); }; // Height animations jQuery.fn.slideDownCSS = function(duration, onFinish, easing, delay){ if (this.length == 0) return; var $this = this; this.clearPreviousTransitions(); // Grabbing paddings this.resetInlineCSS('padding-top', 'padding-bottom'); var timer1 = setTimeout(function(){ var paddingTop = parseInt($this.css('padding-top')), paddingBottom = parseInt($this.css('padding-bottom')); // Grabbing the "auto" height in px $this.css({ visibility: 'hidden', position: 'absolute', height: 'auto', 'padding-top': 0, 'padding-bottom': 0, display: 'block' }); var height = $this.height(); $this.css({ overflow: 'hidden', height: '0px', visibility: '', position: '', opacity: 0 }); $this.performCSSTransition({ height: height + paddingTop + paddingBottom, opacity: 1, 'padding-top': paddingTop, 'padding-bottom': paddingBottom }, duration, function(){ $this.resetInlineCSS('overflow').css('height', 'auto'); if (typeof onFinish == 'function') onFinish(); }, easing, delay); }, 25); this.data('animation-timers', timer1 + ',null'); }; jQuery.fn.slideUpCSS = function(duration, onFinish, easing, delay){ if (this.length == 0) return; this.clearPreviousTransitions(); this.css({ height: this.outerHeight(), overflow: 'hidden', 'padding-top': this.css('padding-top'), 'padding-bottom': this.css('padding-bottom'), opacity: 1 }); var $this = this; this.performCSSTransition({ height: 0, 'padding-top': 0, 'padding-bottom': 0, opacity: 0 }, duration, function(){ $this.resetInlineCSS('overflow', 'padding-top', 'padding-bottom', 'opacity').css({ display: 'none' }); if (typeof onFinish == 'function') onFinish(); }, easing, delay); }; // Opacity animations jQuery.fn.fadeInCSS = function(duration, onFinish, easing, delay){ if (this.length == 0) return; this.clearPreviousTransitions(); this.css({ opacity: 0, display: 'block' }); this.performCSSTransition({ opacity: 1 }, duration, onFinish, easing, delay); }; jQuery.fn.fadeOutCSS = function(duration, onFinish, easing, delay){ if (this.length == 0) return; var $this = this; this.performCSSTransition({ opacity: 0 }, duration, function(){ $this.css('display', 'none'); if (typeof onFinish == 'function') onFinish(); }, easing, delay); }; // Material design animations jQuery.fn.showMD = function(duration, onFinish, easing, delay){ if (this.length == 0) return; this.clearPreviousTransitions(); // Grabbing paddings this.resetInlineCSS('padding-top', 'padding-bottom'); var paddingTop = parseInt(this.css('padding-top')), paddingBottom = parseInt(this.css('padding-bottom')); // Grabbing the "auto" height in px this.css({ visibility: 'hidden', position: 'absolute', height: 'auto', 'padding-top': 0, 'padding-bottom': 0, 'margin-top': -20, opacity: '', display: 'block' }); var height = this.height(); this.css({ overflow: 'hidden', height: '0px' }).resetInlineCSS('visibility', 'position'); var $this = this; this.performCSSTransition({ height: height + paddingTop + paddingBottom, 'margin-top': 0, 'padding-top': paddingTop, 'padding-bottom': paddingBottom }, duration || 350, function(){ $this.resetInlineCSS('overflow', 'margin-top', 'padding-top', 'padding-bottom').css('height', 'auto'); if (typeof onFinish == 'function') onFinish(); }, easing || 'cubic-bezier(.23,1,.32,1)', delay || 150); }; jQuery.fn.hideMD = function(duration, onFinish, easing, delay){ if (this.length == 0) return; this.clearPreviousTransitions(); var $this = this; this.resetInlineCSS('margin-top'); this.performCSSTransition({ opacity: 0 }, duration || 100, function(){ $this.css({ display: 'none' }).resetInlineCSS('opacity'); if (typeof onFinish == 'function') onFinish(); }, easing, delay); }; // Slide element left / right var slideIn = function($this, from){ if ($this.length == 0) return; $this.clearPreviousTransitions(); $this.css({width: 'auto', height: 'auto'}); var width = $this.width(), height = $this.height(); $this.css({ width: width, height: height, position: 'relative', left: (from == 'right') ? '100%' : '-100%', opacity: 0, display: 'block' }); $this.performCSSTransition({ left: '0%', opacity: 1 }, arguments[0] || 250, function(){ $this.resetInlineCSS('position', 'left', 'opacity', 'display').css({width: 'auto', height: 'auto'}); }); }, slideOut = function($this, to){ if ($this.length == 0) return; $this.clearPreviousTransitions(); $this.css({ position: 'relative', left: 0, opacity: 1 }); $this.performCSSTransition({ left: (to == 'left') ? '-100%' : '100%', opacity: 0 }, arguments[0] || 250, function(){ $this.css({ display: 'none' }).resetInlineCSS('position', 'left', 'opacity'); }); }; jQuery.fn.slideOutLeft = function(){ slideOut(this, 'left'); }; jQuery.fn.slideOutRight = function(){ slideOut(this, 'right'); }; jQuery.fn.slideInLeft = function(){ slideIn(this, 'left'); }; jQuery.fn.slideInRight = function(){ slideIn(this, 'right'); }; }(); // source --> //www.pixopa.com/wp-content/themes/pixopa-new/framework/js/us.widgets.js?ver=3.1 /** * UpSolution Shortcode: us_message */ (function($){ "use strict"; $.fn.usMessage = function(){ return this.each(function(){ var $this = $(this), $closer = $this.find('.w-message-close'); $closer.click(function(){ $this.wrap('
'); var $wrapper = $this.parent(); $wrapper.css({overflow: 'hidden', height: $this.outerHeight(true)}); $wrapper.performCSSTransition({ height: 0 }, 400, function(){ $wrapper.remove(); $us.$canvas.trigger('contentChange'); }, 'cubic-bezier(.4,0,.2,1)'); }); }); }; $(function(){ $('.w-message').usMessage(); }); })(jQuery); /** * Focus for different kind of forms */ jQuery(function($){ $(document).on('focus', '.w-form-row-field input, .w-form-row-field textarea', function(){ $(this).closest('.w-form-row').addClass('focused'); }); $(document).on('blur', '.w-form-row-field input, .w-form-row-field textarea', function(){ $(this).closest('.w-form-row').removeClass('focused'); }); }); /** * UpSolution Widget: w-dropdown */ (function($){ "use strict"; $.fn.wDropdown = function(){ return this.each(function(){ var $this = $(this), $list = $this.find('.w-dropdown-list'), $current = $this.find('.w-dropdown-current'); var closeList = function(){ $list.slideUpCSS(250, function(){ $this.removeClass('active'); }); $us.$window.off('mouseup touchstart mousewheel DOMMouseScroll touchstart', closeListEvent); }; var closeListEvent = function(e){ if ($this.has(e.target).length !== 0) return; e.stopPropagation(); e.preventDefault(); closeList(); }; $list.hide(); $current.click(function(){ if ($this.hasClass('active')){ closeList(); return; } $this.addClass('active'); $list.slideDownCSS(); $us.$window.on('mouseup touchstart mousewheel DOMMouseScroll touchstart', closeListEvent); }); }); }; $(function(){ $('.w-dropdown').wDropdown(); }); })(jQuery); /** * UpSolution Widget: w-blog */ (function($){ "use strict"; $us.WBlog = function(container, options){ this.init(container, options); }; $us.WBlog.prototype = { init: function(container, options){ // Commonly used dom elements this.$container = $(container); this.$filters = this.$container.find('.g-filters-item'); this.$list = this.$container.find('.w-blog-list'); this.$items = this.$container.find('.w-blog-post'); this.$pagination = this.$container.find('.g-pagination'); this.$loadmore = this.$container.find('.g-loadmore'); this.$preloader = this.$container.find('.w-blog-preloader'); this.curCategory = ''; this.paginationType = this.$pagination.length ? 'regular' : (this.$loadmore.length ? 'ajax' : 'none'); this.items = []; this.loading = false; if (this.paginationType != 'none') { var $jsonContainer = this.$container.find('.w-blog-json'); if ($jsonContainer.length == 0) return; this.ajaxData = $jsonContainer[0].onclick() || {}; this.ajaxUrl = this.ajaxData.ajax_url || ''; this.permalinkUrl = this.ajaxData.permalink_url || ''; this.templateVars = this.ajaxData.template_vars || {}; this.category = this.templateVars.query_args.category_name || ''; this.curCategory = this.category; this.curPage = this.ajaxData.current_page || 1; this.perpage = this.ajaxData.perpage || this.$items.length; this.infiniteScroll = this.ajaxData.infinite_scroll || 0; $jsonContainer.remove(); } if (this.paginationType == 'ajax') { if (this.templateVars.query_args.orderby == 'rand') { this.$items.each(function(index, item){ this.items.push(parseInt(item.getAttribute('data-id'))); }.bind(this)); } this.$loadmore.on('click', function(){ if (this.curPage < this.ajaxData.max_num_pages) { this.setState(this.curPage + 1); } }.bind(this)); if (this.infiniteScroll) { $us.scroll.addWaypoint(this.$loadmore, '-70%', function(){ this.$loadmore.click(); }.bind(this)); } } else if (this.paginationType == 'regular' && this.$filters.length) { this.paginationPcre = new RegExp('/page/([0-9]+)/$'); this.location = location.href.replace(this.paginationPcre, '/'); this.$navLinks = this.$container.find('.nav-links'); var self = this; this.$navLinks.on('click', 'a', function(e){ e.preventDefault(); var arr, pageNum = (arr = self.paginationPcre.exec(this.href)) ? parseInt(arr[1]) : 1; self.setState(pageNum); }); } if (this.$container.hasClass('with_isotope') && $.fn.isotope) { this.$list.imagesLoaded(function(){ this.$list.isotope({ itemSelector: '.w-blog-post', layoutMode: (this.$container.hasClass('isotope_fit_rows')) ? 'fitRows' : 'masonry', isOriginLeft: !$('.l-body').hasClass('rtl') }); this.$list.isotope(); }.bind(this)); $us.$canvas.on('contentChange', function(){ this.$list.imagesLoaded(function(){ this.$list.isotope('layout'); }.bind(this)); }.bind(this)); } this.$filters.each(function(index, filter){ var $filter = $(filter), category = $filter.data('category'); $filter.on('click', function(){ if (category != this.curCategory) { this.setState(1, category); this.$filters.removeClass('active'); $filter.addClass('active'); } }.bind(this)) }.bind(this)); }, setState: function(page, category){ if (this.paginationType == 'none') { // Simple state changer this.$list.isotope({filter: (category == '*') ? '*' : ('.' + category)}); this.curCategory = category; return; } if (this.loading) return; this.loading = true; category = category || this.curCategory; if (category == '*') { category = this.category; } this.templateVars.query_args.paged = page; this.templateVars.query_args.category_name = category; if (this.paginationType == 'ajax') { if (page == 1) { this.items = []; this.templateVars.query_args.post__not_in = this.items; this.$loadmore.addClass('done'); } else { if (this.templateVars.query_args.orderby == 'rand') { this.templateVars.query_args.paged = 1; this.templateVars.query_args.post__not_in = this.items; } this.$loadmore.addClass('loading'); } } if (this.paginationType != 'ajax' || page == 1) { this.$preloader.addClass('active'); if (this.$list.data('isotope')) { this.$list.isotope('remove', this.$container.find('.w-blog-post')); this.$list.isotope('layout'); } else { this.$container.find('.w-blog-post').remove(); } } this.ajaxData.template_vars = JSON.stringify(this.templateVars); // In case we set paged to 1 for rand order - setting it back this.templateVars.query_args.paged = page; $.ajax({ type: 'post', url: this.ajaxData.ajax_url, data: this.ajaxData, success: function(html){ var $result = $(html), $container = $result.find('.w-blog-list'), $items = $container.children(), isotope = this.$list.data('isotope'); $container.imagesLoaded(function(){ this.beforeAppendItems($items); $items.appendTo(this.$list); $container.remove(); var $sliders = $items.find('.w-slider'); this.afterAppendItems($items); if (isotope) { isotope.appended($items); } $sliders.each(function(index, slider){ $(slider).wSlider().find('.royalSlider').data('royalSlider').ev.on('rsAfterInit', function(){ if (isotope) { this.$list.isotope('layout'); } }); }.bind(this)); if (isotope) { this.$list.isotope('layout'); } if (this.paginationType == 'regular') { this.$pagination.remove(); var $pagination = $result.find('.g-pagination'); this.$container.append($pagination); this.$pagination = this.$container.find('.g-pagination'); var self = this; this.$pagination.find('.nav-links a').each(function(){ var $link = $(this), linkURL = $link.attr('href'); linkURL = linkURL.replace(self.ajaxUrl, self.permalinkUrl); $link.attr('href', linkURL); }); this.paginationPcre = new RegExp('/page/([0-9]+)/$'); this.location = location.href.replace(this.paginationPcre, '/'); this.$navLinks = this.$container.find('.nav-links'); this.$navLinks.on('click', 'a', function(e){ e.preventDefault(); var arr, pageNum = (arr = self.paginationPcre.exec(this.href)) ? parseInt(arr[1]) : 1; self.setState(pageNum); }); } if (this.paginationType == 'ajax') { if (page == 1) { var $jsonContainer = $result.find('.w-blog-json'); if ($jsonContainer.length) { var ajaxData = $jsonContainer[0].onclick() || {}; this.ajaxData.max_num_pages = ajaxData.max_num_pages || this.ajaxData.max_num_pages; } else { this.ajaxData.max_num_pages = 1; } } if (this.templateVars.query_args.orderby == 'rand') { $items.each(function(index, item){ this.items.push(parseInt(item.getAttribute('data-id'))); }.bind(this)); } if (this.templateVars.query_args.paged >= this.ajaxData.max_num_pages) { this.$loadmore.addClass('done'); } else { this.$loadmore.removeClass('done'); this.$loadmore.removeClass('loading'); } if (this.infiniteScroll) { $us.scroll.addWaypoint(this.$loadmore, '-70%', function(){ this.$loadmore.click(); }.bind(this)); } } this.$preloader.removeClass('active'); }.bind(this)); this.loading = false; }.bind(this), error: function(){ this.$loadmore.removeClass('loading'); }.bind(this) }); this.curPage = page; this.curCategory = category; }, /** * Overloadable function for themes * @param $items */ beforeAppendItems: function($items){ }, afterAppendItems: function($items){ } }; $.fn.wBlog = function(options){ return this.each(function(){ $(this).data('wBlog', new $us.WBlog(this, options)); }); }; })(jQuery); /** * UpSolution Widget: w-tabs * * @requires $us.canvas */ !function($){ "use strict"; $us.WTabs = function(container, options){ this.init(container, options); }; $us.WTabs.prototype = { init: function(container, options){ // Setting options var defaults = { duration: 300, easing: 'cubic-bezier(.78,.13,.15,.86)' }; this.options = $.extend({}, defaults, options); this.isRtl = $('.l-body').hasClass('rtl'); // Commonly used dom elements this.$container = $(container); this.$tabsList = this.$container.find('.w-tabs-list:first'); this.$tabs = this.$tabsList.find('.w-tabs-item'); this.$tabsH = this.$tabsList.find('.w-tabs-item-h'); this.$sectionsWrapper = this.$container.find('.w-tabs-sections:first'); this.$sectionsHelper = this.$sectionsWrapper.children(); this.$sections = this.$sectionsHelper.find('.w-tabs-section'); this.$headers = this.$sections.children('.w-tabs-section-header'); this.$contents = this.$sections.children('.w-tabs-section-content'); // Class variables this.width = 0; this.tabWidths = []; this.isTogglable = (this.$container.usMod('type') == 'togglable'); // Basic layout this.basicLayout = this.$container.hasClass('accordion') ? 'accordion' : (this.$container.usMod('layout') || 'default'); // Current active layout (may be switched to 'accordion') this.curLayout = this.basicLayout; this.responsive = $us.canvas.options.responsive; // Array of active tabs indexes this.active = []; this.count = this.$tabs.length; // Container width at which we should switch to accordion layout this.minWidth = 0; if (this.count == 0) return; // Preparing arrays of jQuery objects for easier manipulating in future this.tabs = $.map(this.$tabs.toArray(), $); this.sections = $.map(this.$sections.toArray(), $); this.headers = $.map(this.$headers.toArray(), $); this.contents = $.map(this.$contents.toArray(), $); $.each(this.tabs, function(index){ if (this.tabs[index].hasClass('active')) { this.active.push(index); } this.tabs[index].add(this.headers[index]).on('click', function(e){ e.preventDefault(); // Toggling accordion sections if (this.curLayout == 'accordion' && this.isTogglable) { // Cannot toggle the only active item this.toggleSection(index); } // Setting tabs active item else if (index != this.active[0]) { this.openSection(index); } }.bind(this)); }.bind(this)); this.$tabsH.on('click', function(e){ e.preventDefault(); }); // Boundable events this._events = { resize: this.resize.bind(this), contentChanged: function(){ $us.$canvas.trigger('contentChange'); } }; // Starting everything this.switchLayout(this.curLayout); if (this.curLayout != 'accordion' || !this.isTogglable) { this.openSection(this.active[0]); } setTimeout(this._events.resize, 50); $us.$window.on('resize load', this._events.resize); if (window.location.hash) { var hash = window.location.hash.substr(1), $linkedSection = this.$container.find('.w-tabs-section[id="'+hash+'"]'); if ($linkedSection.length && ( ! $linkedSection.hasClass('active'))) { var $header = $linkedSection.find('.w-tabs-section-header'); $header.click(); } } }, switchLayout: function(to){ this.cleanUpLayout(this.curLayout); this.prepareLayout(to); this.curLayout = to; }, /** * Clean up layout's special inline styles and/or dom elements * @param from */ cleanUpLayout: function(from){ if (from == 'default' || from == 'timeline' || from == 'modern' || from == 'trendy') { this.$sectionsWrapper.clearPreviousTransitions().resetInlineCSS('width', 'height'); this.$sectionsHelper.clearPreviousTransitions().resetInlineCSS('position', 'width', 'left'); this.$sections.resetInlineCSS('width'); this.$container.removeClass('autoresize'); } else if (from == 'accordion') { this.$container.removeClass('accordion'); this.$contents.resetInlineCSS('height', 'padding-top', 'padding-bottom', 'display', 'opacity'); } else if (from == 'ver') { this.$contents.resetInlineCSS('height', 'padding-top', 'padding-bottom', 'display', 'opacity'); } }, /** * Apply layout's special inline styles and/or dom elements * @param to */ prepareLayout: function(to){ if (to == 'default' || to == 'timeline' || to == 'modern' || to == 'trendy') { this.$container.addClass('autoresize'); this.$sectionsHelper.css('position', 'absolute'); } else if (to == 'accordion') { this.$container.addClass('accordion'); this.$contents.hide(); for (var i = 0; i < this.active.length; i++) { if (this.contents[this.active[i]] !== undefined) { this.contents[this.active[i]].show(); } } } else if (to == 'ver') { this.$contents.hide(); this.contents[this.active[0]].show(); } }, /** * Measure needed sizes and store them to this.tabWidths variable * * TODO Count minWidth here as well */ measure: function(){ if (this.basicLayout == 'ver') { // Measuring minimum tabs width this.$tabsList.css('width', 0); var minTabWidth = this.$tabsList.outerWidth(true); this.$tabsList.css('width', ''); // Measuring the mininum content width this.$container.addClass('measure'); var minContentWidth = this.$sectionsWrapper.outerWidth(true); this.$container.removeClass('measure'); // Measuring minimum tabs width for percent-based sizes var navWidth = this.$container.usMod('navwidth'); if (navWidth != 'auto') { // Percent-based measure minTabWidth = Math.max(minTabWidth, minContentWidth * parseInt(navWidth) / (100 - parseInt(navWidth))); } this.minWidth = Math.max(480, minContentWidth + minTabWidth + 1); } else { this.tabWidths = []; // We hide active line temporarily to count tab sizes properly this.$container.addClass('measure'); for (var index = 0; index < this.tabs.length; index++) { this.tabWidths.push(this.tabs[index].outerWidth(true)); } this.$container.removeClass('measure'); if (this.basicLayout == 'default' || this.basicLayout == 'timeline' || this.basicLayout == 'modern' || this.basicLayout == 'trendy') { // Array sum this.minWidth = this.tabWidths.reduce(function(pv, cv){ return pv + cv; }, 0); } } }, /** * Open tab section * * @param index int */ openSection: function(index){ if (this.sections[index] === undefined) return; if (this.curLayout == 'default' || this.curLayout == 'timeline' || this.curLayout == 'modern' || this.curLayout == 'trendy') { this.$container.removeClass('autoresize'); var height = this.sections[index].height(); this.$sectionsHelper.performCSSTransition({ left: -this.width * (this.isRtl ? (this.count - index - 1 ) : index) }, this.options.duration, this._events.contentChanged, this.options.easing); this.$sectionsWrapper.performCSSTransition({ height: height }, this.options.duration, function(){ this.$container.addClass('autoresize'); }.bind(this), this.options.easing); } else if (this.curLayout == 'accordion' || this.curLayout == 'ver') { if (this.contents[this.active[0]] !== undefined) { this.contents[this.active[0]].css('display', 'block').slideUp(this.options.duration); } this.contents[index].css('display', 'none').slideDown(this.options.duration, this._events.contentChanged); // Scrolling to the opened section at small window dimensions if (this.curLayout == 'accordion' && $us.canvas.winWidth < 768) { var newTop = this.headers[0].offset().top; for (var i = 0; i < index; i++) { newTop += this.headers[i].outerHeight(); } $us.scroll.scrollTo(newTop, true); } } this._events.contentChanged(); this.$tabs.removeClass('active'); this.tabs[index].addClass('active'); this.$sections.removeClass('active'); this.sections[index].addClass('active'); this.active[0] = index; }, /** * Toggle some togglable accordion section * * @param index */ toggleSection: function(index){ // (!) Can only be used within accordion state var indexPos = $.inArray(index, this.active); if (indexPos != -1) { this.contents[index].css('display', 'block').slideUp(this.options.duration, this._events.contentChanged); this.tabs[index].removeClass('active'); this.sections[index].removeClass('active'); this.active.splice(indexPos, 1); } else { this.contents[index].css('display', 'none').slideDown(this.options.duration, this._events.contentChanged); this.tabs[index].addClass('active'); this.sections[index].addClass('active'); this.active.push(index); } }, /** * Resize-driven logics */ resize: function(){ this.width = this.$container.width(); this.$tabsList.removeClass('hidden'); // Basic layout may be overriden if (this.responsive) { if (this.basicLayout == 'ver' && this.curLayout != 'ver') this.switchLayout('ver'); if (this.curLayout != 'accordion') this.measure(); var nextLayout = (this.width < this.minWidth) ? 'accordion' : this.basicLayout; if (nextLayout !== this.curLayout) this.switchLayout(nextLayout); } // Fixing tabs display if (this.curLayout == 'default' || this.curLayout == 'timeline' || this.curLayout == 'modern' || this.curLayout == 'trendy') { this.$container.addClass('autoresize'); this.$sectionsWrapper.css('width', this.width); this.$sectionsHelper.css('width', this.count * this.width); this.$sections.css('width', this.width); if (this.contents[this.active[0]] !== undefined) { this.$sectionsHelper.css('left', -this.width * (this.isRtl ? (this.count - this.active[0] - 1) : this.active[0])); var height = this.sections[this.active[0]].height(); this.$sectionsWrapper.css('height', height); } } else if (this.curLayout == 'ver') { var sectionsWrapperWidth = this.$sectionsWrapper.width(); } this._events.contentChanged() } }; $.fn.wTabs = function(options){ return this.each(function(){ $(this).data('wTabs', new $us.WTabs(this, options)); }); }; }(jQuery); /** * UpSolution Shortcode: us_logos */ jQuery(function($){ $(".w-logos.type_carousel .w-logos-list").each(function(){ var $list = $(this), items = parseInt($list.data('items')); $list.owlCarousel({ items: items, center: (items == 1), loop: true, rtl: $('.l-body').hasClass('rtl'), nav: $list.data('nav'), autoplay: $list.data('autoplay'), autoplayTimeout: $list.data('timeout'), autoplayHoverPause: true, responsive: { 0: {items: 1, center: true}, 480: {items: Math.min(items, 2)}, 768: {items: Math.min(items, 3)}, 900: {items: Math.min(items, 4)}, 1200: {items: items} } }); }); }); /** * UpSolution Shortcode: us_feedback */ jQuery(function($){ $('.w-form.for_cform').each(function(){ var $container = $(this), $form = $container.find('form:first'), $submitBtn = $form.find('.w-btn'), $resultField = $form.find('.w-form-message'), options = $container.find('.w-form-json')[0].onclick(); $form.submit(function(event){ event.preventDefault(); // Prevent double-sending if ($submitBtn.hasClass('loading')) return; $resultField.usMod('type', false).html(''); // Validation var errors = 0; $form.find('[data-required="true"]').each(function(){ var $input = $(this), isEmpty = ($input.val() == ''), $row = $input.closest('.w-form-row'), errorText = options.errors[$input.attr('name')] || ''; $row.toggleClass('check_wrong', isEmpty); $row.find('.w-form-row-state').html(isEmpty ? errorText : ''); if (isEmpty) { errors++; } }); if (errors != 0) return; $submitBtn.addClass('loading'); $.ajax({ type: 'POST', url: options.ajaxurl, dataType: 'json', data: $form.serialize(), success: function(result){ if (result.success) { $resultField.usMod('type', 'success').html(result.data); $form.find('.w-form-row.check_wrong').removeClass('check_wrong'); $form.find('.w-form-row.not-empty').removeClass('not-empty'); $form.find('.w-form-state').html(''); $form.find('input[type="text"], input[type="email"], textarea').val(''); } else { $form.find('.w-form-row.check_wrong').removeClass('check_wrong'); $form.find('.w-form-state').html(''); if (result.data && typeof result.data == 'object') { for (var fieldName in result.data) { if (fieldName == 'empty_message') { var errorText = result.data[fieldName]; $resultField.usMod('type', 'error').html(errorText); continue; } if (!result.data.hasOwnProperty(fieldName)) continue; var $input = $form.find('[name="' + fieldName + '"]'), errorText = result.data[fieldName]; $input.closest('.w-form-row').addClass('check_wrong') .find('.w-form-row-state').html(errorText); } } else { $resultField.usMod('type', 'error').html(result.data); } } }, complete: function(){ $submitBtn.removeClass('loading'); } }); }); }); }); /** * UpSolution Shortcode: us_counter */ jQuery(function($){ $('.w-counter').each(function(index, elm){ var $container = $(this), $number = $container.find('.w-counter-number'), initial = ($container.data('initial') || '0') + '', target = ($container.data('target') || '10') + '', prefix = $container.data('prefix') || '', suffix = $container.data('suffix') || '', // 0 for integers, 1+ for floats (number of digits after the decimal) precision = 0; if (target.indexOf('.') != -1) { precision = target.length - 1 - target.indexOf('.'); } initial = window[precision ? 'parseFloat' : 'parseInt'](initial, 10); target = window[precision ? 'parseFloat' : 'parseInt'](target, 10); $number.html(prefix + initial.toFixed(precision) + suffix); $us.scroll.addWaypoint(this, '15%', function(){ var current = initial, step = 25, stepValue = (target - initial) / 25, interval = setInterval(function(){ current += stepValue; step--; $number.html(prefix + current.toFixed(precision) + suffix); if (step <= 0) { $number.html(prefix + target.toFixed(precision) + suffix); window.clearInterval(interval); } }, 40); }); }); }); /** * UpSolution Shortcode: us_progbar */ jQuery(function($){ $('.w-progbar').each(function(index, elm){ var $container = $(this), $bar = $container.find('.w-progbar-bar-h'), count = $container.data('count') + '', $titleCount = $container.find('.w-progbar-title-count'), $barCount = $container.find('.w-progbar-bar-count'); if (count === null) { count = 50; } $titleCount.html('0%'); $barCount.html('0%'); $us.scroll.addWaypoint(this, '15%', function(){ var current = 0, step = 40, stepValue = count / 40, interval = setInterval(function(){ current += stepValue; step--; $titleCount.html(current.toFixed(0) + '%'); $barCount.html(current.toFixed(0) + '%'); if (step <= 0) { $titleCount.html(count + '%'); $barCount.html(count + '%'); window.clearInterval(interval); } }, 20); $container.removeClass('initial'); }); }); }); /** * UpSolution Shortcode: us_gallery */ jQuery(function($){ if ($.fn.magnificPopup) { $('.w-gallery.link_media .w-gallery-list').each(function(){ $(this).magnificPopup({ type: 'image', delegate: 'a.w-gallery-item', gallery: { enabled: true, navigateByImgClick: true, preload: [0, 1], tPrev: $us.langOptions.magnificPopup.tPrev, // Alt text on left arrow tNext: $us.langOptions.magnificPopup.tNext, // Alt text on right arrow tCounter: $us.langOptions.magnificPopup.tCounter // Markup for "1 of 7" counter }, removalDelay: 300, mainClass: 'mfp-fade', fixedContentPos: false }); }); } if ($.fn.isotope) { // Applying isotope to gallery $('.w-gallery.layout_masonry .w-gallery-list').each(function(index, container){ var $container = $(container); $container.imagesLoaded(function(){ $container.isotope({ layoutMode: 'masonry', isOriginLeft: !$('body').hasClass('rtl') }); $container.isotope(); }); }); } }); /** * UpSolution Shortcode: us_slider */ (function($){ $.fn.wSlider = function(){ return this.each(function(){ var $this = $(this), $slider = $this.find('.royalSlider'), $options = $this.find('.w-slider-json'), options = $options[0].onclick() || {}; $options.remove(); if (!$.fn.royalSlider) { return; } // Always apply certain fit options for blog listing slider if ($this.parent().hasClass('w-blog-post-preview')) { options['imageScaleMode'] = 'fill'; } $slider.royalSlider(options); var slider = $slider.data('royalSlider'); if (options.fullscreen && options.fullscreen.enabled) { // Moving royal slider to the very end of body element to allow a proper fullscreen var rsEnterFullscreen = function(){ $slider.appendTo($('body')); slider.ev.off('rsEnterFullscreen', rsEnterFullscreen); slider.exitFullscreen(); slider.enterFullscreen(); slider.ev.on('rsEnterFullscreen', rsEnterFullscreen); slider.ev.on('rsExitFullscreen', rsExitFullscreen); }; slider.ev.on('rsEnterFullscreen', rsEnterFullscreen); var rsExitFullscreen = function(){ $slider.prependTo($this); slider.ev.off('rsExitFullscreen', rsExitFullscreen); slider.exitFullscreen(); }; } $us.$canvas.on('contentChange', function(){ $slider.parent().imagesLoaded(function(){ slider.updateSliderSize(); }); }); }); }; $(function(){ jQuery('.w-slider').wSlider(); }); })(jQuery); /** * UpSolution Widget: w-portfolio */ !function($){ "use strict"; $us.WPortfolio = function(container, options){ this.init(container, options); }; $us.WPortfolio.prototype = { init: function(container, options){ // Commonly used dom elements this.$container = $(container); if (this.$container.usMod('position') != 'isotope' || !$.fn.isotope) { // No scripts needed return; } this.$filters = this.$container.find('.g-filters-item'); this.$list = this.$container.find('.w-portfolio-list'); this.$items = this.$container.find('.w-portfolio-item'); this.$pagination = this.$container.find('.g-pagination'); this.$loadmore = this.$container.find('.g-loadmore'); this.paginationType = this.$pagination.length ? 'regular' : (this.$loadmore.length ? 'ajax' : 'none'); this.items = {}; this.curCategory = '*'; this.loading = false; this.$items.each(function(index, item){ this.items[parseInt(item.getAttribute('data-id'))] = $(item); }.bind(this)); this.isotopeOptions = { itemSelector: '.w-portfolio-item', layoutMode: 'masonry', masonry: {}, isOriginLeft: !$('.l-body').hasClass('rtl') }; if (this.$container.find('.w-portfolio-item.size_1x1').length) { this.itemWidth = 1; this.isotopeOptions.masonry.columnWidth = '.size_1x1'; } else if (this.$container.find('.w-portfolio-item.size_1x2').length) { this.itemWidth = 1; this.isotopeOptions.masonry.columnWidth = '.size_1x2'; } else { this.itemWidth = 2; this.isotopeOptions.masonry.columnWidth = '.w-portfolio-item'; } if (this.paginationType != 'none') { var $jsonContainer = this.$container.find('.w-portfolio-json'); if ($jsonContainer.length == 0) return; this.jsonData = $jsonContainer[0].onclick() || {}; this.ajaxUrl = this.jsonData.ajax_url || ''; this.templateVars = JSON.stringify(this.jsonData.template_vars || {}); this.perpage = this.jsonData.perpage || this.$items.length; this.order = this.jsonData.order || {}; this.sizes = this.jsonData.sizes || {}; this.curPage = this.jsonData.page || 1; $jsonContainer.remove(); this.isotopeOptions.sortBy = 'number'; this.isotopeOptions.getSortData = { number: function(elm){ return this.order['*'].indexOf(parseInt(elm.getAttribute('data-id'))); }.bind(this) }; } if (this.paginationType == 'ajax') { this.$loadmore.on('click', function(){ var maxPage = Math.ceil(this.order[this.curCategory].length / this.perpage); if (this.curPage < maxPage) { this.setState(this.curPage + 1); } }.bind(this)); } else if (this.paginationType == 'regular') { this.paginationPcre = new RegExp('/page/([0-9]+)/$'); this.location = location.href.replace(this.paginationPcre, '/'); this.$navLinks = this.$container.find('.nav-links'); var self = this; this.$navLinks.on('click', 'a', function(e){ e.preventDefault(); var arr, pageNum = (arr = self.paginationPcre.exec(this.href)) ? parseInt(arr[1]) : 1; self.setState(pageNum); }); this.renderPagination(this.curPage); } this.$filters.each(function(index, filter){ var $filter = $(filter), category = $filter.data('category'); $filter.on('click', function(){ if (category != this.curCategory) { this.setState((this.paginationType == 'regular') ? 1 : this.curPage, category); this.$filters.removeClass('active'); $filter.addClass('active'); } }.bind(this)) }.bind(this)); // Applying isotope this.loading = true; this.$list.imagesLoaded(function(){ this.$list.isotope(this.isotopeOptions); this.$list.isotope(); this.loading = false; $us.$canvas.on('contentChange', function(){ this.$list.isotope('layout'); }.bind(this)); $(window).on('resize', function(){ this.$list.isotope('layout'); }.bind(this)); }.bind(this)); }, setState: function(page, category){ if (this.paginationType == 'none') { // Simple state changer this.$list.isotope({filter: (category == '*') ? '*' : ('.' + category)}); this.curCategory = category; return; } if (this.loading) return; category = category || this.curCategory; var start = (this.paginationType == 'ajax') ? 0 : ((page - 1) * this.perpage), length = page * this.perpage, showIds = (this.order[category] || []).slice(start, length), loadIds = [], $newItems = []; $.each(showIds, function(i, id){ // Determining which items we need to load via ajax and creating temporary stubs for them if (this.items[id] !== undefined) return; var itemSize = (this.sizes[id] || '1x1'), itemHtml = '
' + '
'; this.items[id] = $(itemHtml).appendTo(this.$list); $newItems.push(this.items[id][0]); loadIds.push(showIds[i]); }.bind(this)); if (loadIds.length > 0) { // Loading new items var $insertedItems = $(); $.ajax({ type: 'post', url: this.ajaxUrl, data: { action: 'us_ajax_portfolio', ids: loadIds.join(','), template_vars: this.templateVars }, success: function(html){ var $container = $('
', {html: html}), $items = $container.children(), isotope = this.$list.data('isotope'); $items.each(function(index, item){ var $item = $(item), itemID = parseInt($item.data('id')); $item.imagesLoaded(function(){ this.items[itemID].attr('class', $item.attr('class')).attr('style', $item.attr('style')); this.itemLoaded(itemID, $item); this.items[itemID].html($item.html()); $insertedItems = $insertedItems.add(this.items[itemID]); if ($insertedItems.length >= loadIds.length) { $container.remove(); this.itemsLoaded($insertedItems); } if (isotope) { if (this.itemWidth != 1) { if (this.$container.find('.w-portfolio-item.size_1x1').length) { this.itemWidth = 1; this.isotopeOptions.masonry.columnWidth = '.size_1x1'; } else if (this.$container.find('.w-portfolio-item.size_1x2').length) { this.itemWidth = 1; this.isotopeOptions.masonry.columnWidth = '.size_1x2'; } else { this.itemWidth = 2; this.isotopeOptions.masonry.columnWidth = '.w-portfolio-item'; } if (this.itemWidth == 1) { this.$list.isotope(this.isotopeOptions); } } this.$list.isotope('layout'); } }.bind(this)); }.bind(this)); }.bind(this) }); } this.$list.isotope({ filter: function(){ return (showIds.indexOf(parseInt(this.getAttribute('data-id'))) != -1); } }); if (loadIds.length > 0) { this.$list.isotope('insert', $newItems); } this.curPage = page; this.curCategory = category; this.renderPagination(); }, renderPagination: function(){ if (this.paginationType == 'ajax') { var maxPage = Math.ceil(this.order[this.curCategory].length / this.perpage); this.$loadmore[(this.curPage < maxPage) ? 'removeClass' : 'addClass']('done'); } else if (this.paginationType == 'regular') { var maxPage = Math.ceil(this.order[this.curCategory].length / this.perpage), html = ''; if (maxPage > 1) { if (this.curPage > 1) { html += ''; } else { html += '<'; } for (var i = 1; i <= maxPage; i++) { if (i != this.curPage) { html += '' + i + ''; } else { html += '' + i + ''; } } if (this.curPage < maxPage) { html += ''; } else { html += '>'; } } this.$navLinks.html(html); } }, pageUrl: function(page){ return (page == 1) ? this.location : (this.location + 'page/' + page + '/'); }, /** * Overloadable function for themes * @param $item */ itemLoaded: function($item){ }, /** * Overloadable function for themes * @param $item */ itemsLoaded: function($items){ } }; $.fn.wPortfolio = function(options){ return this.each(function(){ $(this).data('wPortfolio', new $us.WPortfolio(this, options)); }); }; if ($.fn.magnificPopup) { $('.w-portfolio-list').each(function(){ $(this).magnificPopup({ type: 'image', delegate: 'a[ref=magnificPopupPortfolio]:visible', gallery: { enabled: true, navigateByImgClick: true, preload: [0, 1], tPrev: $us.langOptions.magnificPopup.tPrev, // Alt text on left arrow tNext: $us.langOptions.magnificPopup.tNext, // Alt text on right arrow tCounter: $us.langOptions.magnificPopup.tCounter // Markup for "1 of 7" counter }, removalDelay: 300, mainClass: 'mfp-fade', fixedContentPos: false }); }); } }(jQuery); /** * UpSolution Widget: w-cart * * @requires $us.canvas * @requires $us.nav */ jQuery(function($){ var $cart = $('.w-cart'); if ($cart.length == 0) return; var $quantity = $cart.find('.w-cart-quantity'); var updateCart = function(){ var $quantities = $cart.find('.quantity'), total = 0; $quantities.each(function(){ var quantity, text = $(this).text() + '', matches = text.match(/\d+/g); if (matches) { quantity = parseInt(matches[0], 10); total += quantity; } }); if (total > 0) { $quantity.html(total); $cart.removeClass('empty'); } else { $quantity.html('0'); $cart.addClass('empty'); } }; updateCart(); $(document.body).bind('wc_fragments_loaded', function(){ updateCart(); }); $(document.body).bind('wc_fragments_refreshed', function(){ updateCart(); }); var $notification = $cart.find('.w-cart-notification'), $productName = $notification.find('.product-name'), $cartLink = $cart.find('.w-cart-link'), $dropdown = $cart.find('.w-cart-dropdown'), $quantity = $cart.find('.w-cart-quantity'), productName = $productName.text(), animationType = (window.$us !== undefined && window.$us.nav !== undefined) ? $us.nav.animationType : 'opacity', showFn = 'fadeInCSS', hideFn = 'fadeOutCSS', opened = false; if (animationType == 'height') { showFn = 'slideDownCSS'; hideFn = 'slideUpCSS'; } else if (animationType == 'mdesign') { showFn = 'showMD'; hideFn = 'hideMD'; } $notification.on('click', function(){ $notification[hideFn](); }); jQuery('body').bind('added_to_cart', function(event, fragments, cart_hash, $button){ if (event === undefined) return; $quantity.html(parseInt($quantity.html(), 10) + 1); $cart.removeClass('empty'); productName = $button.closest('.product').find('.product-meta h3:first').text(); $productName.html(productName); $notification[showFn](undefined, function(){ var newTimerId = setTimeout(function(){ $notification[hideFn](); }, 3000); $notification.data('animation-timers', $notification.data('animation-timers') + ',' + newTimerId); }); }); if ($.isMobile) { var outsideClickEvent = function(e){ if (jQuery.contains($cart[0], e.target)) return; $dropdown[hideFn](); $us.$body.off('touchstart', outsideClickEvent); opened = false; }; $cartLink.on('click', function(e){ if (!opened) { e.preventDefault(); $dropdown[showFn](); $us.$body.on('touchstart', outsideClickEvent); } else { $dropdown[hideFn](); $us.$body.off('touchstart', outsideClickEvent); } opened = !opened; }); } else { var hideTimer = null; $cartLink.on('hover', function(){ if (opened) return; $dropdown[showFn](); opened = true; }); $cart.hover(function(){ clearTimeout(hideTimer); }, function(){ clearTimeout(hideTimer); hideTimer = setTimeout(function(){ if (!opened) return; $dropdown[hideFn](); opened = false; }, 250); }); } }); /** * UpSolution Login Widget: widget_us_login * */ !function($){ "use strict"; $us.wUsLogin = function(container, options){ this.$container = $(container); this.$form = this.$container.find('.w-form'); this.$profile = this.$container.find('.w-profile'); var $jsonContainer = this.$container.find('.w-profile-json'); this.jsonData = $jsonContainer[0].onclick() || {}; $jsonContainer.remove(); this.ajaxUrl = this.jsonData.ajax_url || ''; this.logoutRedirect = this.jsonData.logout_redirect || ''; $.ajax({ type: 'post', url: this.ajaxUrl, data: { action: 'us_ajax_user_info', logout_redirect: this.logoutRedirect }, success: function(result){ if (result.success) { var $avatar = this.$profile.find('.w-profile-avatar'), $name = this.$profile.find('.w-profile-name'), $logoutLink = this.$profile.find('.w-profile-link.for_logout') $avatar.html(result.data.avatar); $name.html(result.data.name); $logoutLink.attr('href', result.data.logout_url); this.$profile.removeClass('hidden'); } else { this.$form.removeClass('hidden'); } }.bind(this) }); }; $.fn.wUsLogin = function(options){ return this.each(function(){ $(this).data('wUsLogin', new $us.wUsLogin(this, options)); }); }; $(function(){ $('.widget_us_login').wUsLogin(); }); }(jQuery); /** * UpSolution Widget: w-maps * * Used for [us_gmaps] shortcode */ !function($){ "use strict"; $us.WMapsGeocodesCounter = 0; // counter of total geocode requests number $us.WMapsGeocodesRunning = false; $us.WMapsCurrentGeocode = 0; // current processing geocode $us.WMapsGeocodesMax = 5; // max number of simultaneous geocode requests allowed $us.WMapsGeocodesStack = {}; $us.WMapsRunGeoCode = function(){ if ($us.WMapsCurrentGeocode <= $us.WMapsGeocodesCounter) { $us.WMapsGeocodesRunning = true; if ($us.WMapsGeocodesStack[$us.WMapsCurrentGeocode] != null) $us.WMapsGeocodesStack[$us.WMapsCurrentGeocode](); } else { $us.WMapsGeocodesRunning = false; } }; $us.WMaps = function(container, options){ this.$container = $(container); var $jsonContainer = this.$container.find('.w-map-json'), jsonOptions = $jsonContainer[0].onclick() || {}, $jsonStyleContainer = this.$container.find('.w-map-style-json'), jsonStyleOptions, markerOptions, shouldRunGeoCode = false; $jsonContainer.remove(); if ($jsonStyleContainer.length) { jsonStyleOptions = $jsonStyleContainer[0].onclick() || {}; $jsonStyleContainer.remove(); } // Setting options var defaults = {}; this.options = $.extend({}, defaults, jsonOptions, options); this._events = { redraw: this.redraw.bind(this) }; var gmapsOptions = { el: '#' + this.$container.attr('id'), lat: 0, lng: 0, zoom: this.options.zoom, type: this.options.type, height: this.options.height + 'px', width: '100%', mapTypeId: google.maps.MapTypeId[this.options.maptype] }; if (this.options.hideControls) { gmapsOptions.disableDefaultUI = true; } if (this.options.disableZoom) { gmapsOptions.scrollwheel = false; } if (this.options.disableDragging && ( !$us.$html.hasClass('no-touch'))) { gmapsOptions.draggable = false; } if (this.options.mapBgColor) { gmapsOptions.backgroundColor = this.options.mapBgColor; } this.GMapsObj = new GMaps(gmapsOptions); if (jsonStyleOptions != null && jsonStyleOptions != {}) { this.GMapsObj.map.setOptions({styles: jsonStyleOptions}); } var that = this; if (this.options.latitude != null && this.options.longitude != null) { this.GMapsObj.setCenter(this.options.latitude, this.options.longitude); } else { var mapGeoCode = function(geocodeNum){ GMaps.geocode({ address: that.options.address, callback: function(results, status){ if (status == 'OK') { var latlng = results[0].geometry.location; that.options.latitude = latlng.lat(); that.options.longitude = latlng.lng(); that.GMapsObj.setCenter(that.options.latitude, that.options.longitude); $us.WMapsCurrentGeocode++; $us.WMapsRunGeoCode(); } else if (status == "OVER_QUERY_LIMIT") { setTimeout(function(){ $us.WMapsRunGeoCode() }, 2000); } } }); }; shouldRunGeoCode = true; $us.WMapsGeocodesStack[$us.WMapsGeocodesCounter] = mapGeoCode; $us.WMapsGeocodesCounter++; } $.each(this.options.markers, function(i, val){ markerOptions = {}; if (that.options.icon != null) { markerOptions.icon = { url: that.options.icon.url, size: new google.maps.Size(that.options.icon.size[0], that.options.icon.size[1]), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(that.options.icon.anchor[0], that.options.icon.anchor[1]) }; } if (that.options.markers[i] != null) { if (that.options.markers[i].latitude != null && that.options.markers[i].longitude != null) { markerOptions.lat = that.options.markers[i].latitude; markerOptions.lng = that.options.markers[i].longitude; markerOptions.infoWindow = {content: that.options.markers[i].html}; var marker = that.GMapsObj.addMarker(markerOptions); if (that.options.markers[i].infowindow) { marker.infoWindow.open(that.GMapsObj.map, marker); } } else { var markerGeoCode = function(geocodeNum){ GMaps.geocode({ address: that.options.markers[i].address, callback: function(results, status){ if (status == 'OK') { var latlng = results[0].geometry.location; markerOptions.lat = latlng.lat(); markerOptions.lng = latlng.lng(); markerOptions.infoWindow = {content: that.options.markers[i].html}; var marker = that.GMapsObj.addMarker(markerOptions); if (that.options.markers[i].infowindow) { marker.infoWindow.open(that.GMapsObj.map, marker); } $us.WMapsCurrentGeocode++; $us.WMapsRunGeoCode(); } else if (status == "OVER_QUERY_LIMIT") { setTimeout(function(){ $us.WMapsRunGeoCode() }, 2000); } } }); }; shouldRunGeoCode = true; $us.WMapsGeocodesStack[$us.WMapsGeocodesCounter] = markerGeoCode; $us.WMapsGeocodesCounter++; } } }); if (shouldRunGeoCode && ( !$us.WMapsGeocodesRunning)) { $us.WMapsRunGeoCode(); } $us.$canvas.on('contentChange', this._events.redraw); // In case some toggler was opened before the actual page load $us.$window.load(this._events.redraw); }; $us.WMaps.prototype = { /** * Fixing hidden and other breaking-cases maps */ redraw: function(){ if (this.$container.is(':hidden')) return; this.GMapsObj.refresh(); if (this.options.latitude != null && this.options.longitude != null) { this.GMapsObj.setCenter(this.options.latitude, this.options.longitude); } } }; $.fn.wMaps = function(options){ return this.each(function(){ $(this).data('wMaps', new $us.WMaps(this, options)); }); }; $(function(){ $('.w-map').wMaps(); }); }(jQuery); /** * UpSolution Widget: w-sharing */ !function($){ "use strict"; $('.w-sharing.type_fixed.align_left, .w-sharing.type_fixed.align_right').each(function(){ var $this = $(this); $this.css('margin-top', -.5 * $this.height()); }); $('.w-sharing.type_fixed.align_center').each(function(){ var $this = $(this); $this.css('margin-left', -.5 * $this.width()); }); $('.w-sharing-item').on('click', function(){ var $this = $(this); var opt = { url: window.location, text: document.title, lang: document.documentElement.lang, image: $('meta[name="og:image"]').attr('content') || '' }; if ($this.attr('data-sharing-url') !== undefined && $this.attr('data-sharing-url') != '') { opt.url = $this.attr('data-sharing-url'); } if ($this.attr('data-sharing-image') !== undefined && $this.attr('data-sharing-image') != '') { opt.image = $this.attr('data-sharing-image'); } if ( opt.image == '' || opt.image === undefined ) { var first_image_src = $('img').first().attr('src'); if (first_image_src != undefined && first_image_src != '') { opt.image = first_image_src; } } if ($this.hasClass('facebook')) { window.open("http://www.facebook.com/sharer/sharer.php?u=" + encodeURIComponent(opt.url) + "&t=" + encodeURIComponent(opt.text) + "", "", "toolbar=0, status=0, width=900, height=500"); } else if ($this.hasClass('twitter')) { window.open("https://twitter.com/intent/tweet?text=" + encodeURIComponent(opt.text) + "&url=" + encodeURIComponent(opt.url), "", "toolbar=0, status=0, width=650, height=360"); } else if ($this.hasClass('linkedin')) { window.open('https://www.linkedin.com/cws/share?url=' + encodeURIComponent(opt.url) + '&token=&isFramed=true', 'linkedin', 'toolbar=no,width=550,height=550'); } else if ($this.hasClass('gplus')) { window.open("https://plus.google.com/share?hl=" + encodeURIComponent(opt.lang) + "&url=" + encodeURIComponent(opt.url), "", "toolbar=0, status=0, width=900, height=500"); } else if ($this.hasClass('pinterest')) { window.open('http://pinterest.com/pin/create/button/?url=' + encodeURIComponent(opt.url) + '&media=' + encodeURIComponent(opt.image) + '&description=' + encodeURIComponent(opt.text), 'pinterest', 'toolbar=no,width=700,height=300'); } else if ($this.hasClass('vk')) { window.open('http://vk.com/share.php?url=' + encodeURIComponent(opt.url) + '&title=' + encodeURIComponent(opt.text), '&description=&image=' + encodeURIComponent(opt.image), 'toolbar=no,width=700,height=300'); } else if ($this.hasClass('email')) { window.location = 'mailto:?subject=' + opt.text + '&body=' + opt.url; } }); }(jQuery); /** * UpSolution Widget: l-preloader */ !function($){ "use strict"; if ($('.l-preloader').length) { $('document').ready(function(){ setTimeout(function(){ $('.l-preloader').addClass('done'); }, 500); setTimeout(function(){ $('.l-preloader').addClass('hidden'); }, 1000); // 500 ms after 'done' class is added }); } }(jQuery); // source --> //www.pixopa.com/wp-content/themes/pixopa-new/js/us.theme.js?ver=3.1 /** * UpSolution Widget: w-search */ !function ($) { "use strict"; $.fn.wSearch = function () { return this.each(function(){ var $container = $(this), $form = $container.find('.w-search-form'), $btnOpen = $container.find('.w-search-open'), $btnClose = $container.find('.w-search-close'), $input = $form.find('[name="s"]'), $overlay = $container.find('.w-search-background'), $window = $(window), searchOverlayInitRadius = 25, showHideTimer = null, isFullScreen = $container.hasClass('layout_fullscreen'), searchHide = function(){ $container.removeClass('active'); $input.blur(); if (isFullScreen) { $form.css({ '-webkit-transition': 'opacity 0.4s', transition: 'opacity 0.4s' }); window.setTimeout(function(){ $overlay .removeClass('overlay-on') .addClass('overlay-out') .css({ '-webkit-transform': 'scale(0.1)', 'transform': 'scale(0.1)' }); $form.css('opacity', 0); clearTimeout(showHideTimer); showHideTimer = window.setTimeout(function(){ $form.css('display', 'none'); $overlay.css('display', 'none'); }, 700); }, 25); } }; // Handling virtual keyboards at touch devices if (jQuery.isMobile){ $input .on('focus', function(){ // Transforming hex to rgba var originalColor = $overlay.css('background-color'), overlayOpacity = $overlay.css('opacity'), matches; // RGB Format if (matches = /^rgb\((\d+), (\d+), (\d+)\)$/.exec(originalColor)){ $form.css('background-color', "rgba("+parseInt(matches[1])+","+parseInt(matches[2])+","+parseInt(matches[3])+", "+overlayOpacity+")"); } // Hex format else if (matches = /^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/.exec(originalColor)){ $form.css('background-color', "rgba("+parseInt(matches[1], 16)+","+parseInt(matches[2], 16)+","+parseInt(matches[3], 16)+", "+overlayOpacity+")"); } // Fault tolerance else { $form.css('background-color', originalColor); } $overlay.addClass('mobilefocus'); }) .on('blur', function(){ $overlay.removeClass('mobilefocus'); $form.css('background-color', 'transparent'); }); } $btnOpen.click(function(){ $container.addClass('active'); if (isFullScreen) { var searchPos = $btnOpen.offset(), searchWidth = $btnOpen.width(), searchHeight = $btnOpen.height(); // Preserving scroll position searchPos.top -= $window.scrollTop(); searchPos.left -= $window.scrollLeft(); var overlayX = searchPos.left+searchWidth/2, overlayY = searchPos.top+searchHeight/2, winWidth = $us.canvas.winWidth, winHeight = $us.canvas.winHeight, // Counting distance to the nearest screen corner overlayRadius = Math.sqrt(Math.pow(Math.max(winWidth - overlayX, overlayX), 2) + Math.pow(Math.max(winHeight - overlayY, overlayY), 2)), overlayScale = (overlayRadius+15)/searchOverlayInitRadius; $overlay.css({ width: searchOverlayInitRadius*2, height: searchOverlayInitRadius*2, left: overlayX, top: overlayY, "margin-left": -searchOverlayInitRadius, "margin-top": -searchOverlayInitRadius }); $overlay .removeClass('overlay-out') .show(); $form.css({ opacity: 0, display: 'block', '-webkit-transition': 'opacity 0.4s 0.3s', transition: 'opacity 0.4s 0.3s' }); window.setTimeout(function(){ $overlay .addClass('overlay-on') .css({ "-webkit-transform": "scale(" + overlayScale + ")", "transform": "scale(" + overlayScale + ")" }); $form.css('opacity', 1); clearInterval(showHideTimer); showHideTimer = window.setTimeout(function() { $input.focus(); }, 700); }, 25); } else { showHideTimer = window.setTimeout(function() { $input.focus(); }, 700); } }); $input.keyup(function(e) { if (e.keyCode == 27) searchHide(); }); $btnClose.on('click touchstart', searchHide); }); }; $(function(){ jQuery('.l-header .w-search').wSearch(); }); }(jQuery); /** * UpSolution Widget: w-tabs */ !function( $ ){ // Extending some of the methods for material design animations $us.WTabs.prototype._init = $us.WTabs.prototype.init; $us.WTabs.prototype.init = function(container, options){ this.$tabsBar = $(); this.curTabWidth = 0; this.tabHeights = []; this.tabTops = []; this._init(container, options); }; $us.WTabs.prototype._cleanUpLayout = $us.WTabs.prototype.cleanUpLayout; $us.WTabs.prototype.cleanUpLayout = function(from){ this._cleanUpLayout(from); if (from == 'default' || from == 'ver'){ this.$tabsBar.remove(); } }; $us.WTabs.prototype._prepareLayout = $us.WTabs.prototype.prepareLayout; $us.WTabs.prototype.prepareLayout = function(to){ this._prepareLayout(to); if (to == 'default' || to == 'ver'){ this.$tabsBar = $('
').appendTo(this.$tabsList); } }; $us.WTabs.prototype._measure = $us.WTabs.prototype.measure; $us.WTabs.prototype.measure = function(){ this._measure(); if (this.basicLayout == 'default'){ this.minWidth = Math.max.apply(this, this.tabWidths) * this.count; this.curTabWidth = this.tabs[0].outerWidth(true); } else if (this.basicLayout == 'ver'){ this.tabHeights = []; for (var index = 0; index < this.tabs.length; index++){ this.tabHeights.push(this.tabs[index].outerHeight(true)); this.tabTops.push(index ? (this.tabTops[index-1] + this.tabHeights[index-1]) : 0); } } }; // Counts bar position for certain element index and current layout $us.WTabs.prototype.barPosition = function(index){ if (this.curLayout == 'default'){ var barStartOffset = this.curTabWidth * index, barEndOffset = this.curTabWidth * (this.count - index - 1); return { left: this.isRtl ? barEndOffset : barStartOffset, right: this.isRtl ? barStartOffset : barEndOffset }; } else if (this.curLayout == 'ver'){ return { top: this.tabTops[index], height: this.tabHeights[index] }; } else { return {}; } }; $us.WTabs.prototype._openSection = $us.WTabs.prototype.openSection; $us.WTabs.prototype.openSection = function(index){ this._openSection(index); if (this.curLayout == 'default' || this.curLayout == 'ver' || this.curLayout == 'modern' || this.curLayout == 'trendy'){ this.$tabsBar.performCSSTransition(this.barPosition(index), this.options.duration, null, this.options.easing); } }; $us.WTabs.prototype._resize = $us.WTabs.prototype.resize; $us.WTabs.prototype.resize = function(){ this._resize(); if (this.curLayout == 'default' || this.curLayout == 'ver' || this.curLayout == 'modern' || this.curLayout == 'trendy'){ this.$tabsBar.css(this.barPosition(this.active[0]), this.options.duration, null, this.options.easing); } }; jQuery('.w-tabs').wTabs(); }(jQuery); /** * UpSolution Widget: w-blog */ !function( $ ){ // TODO Make proper reveal grid animation for "load more" $us.WBlog.prototype.beforeAppendItems = function($items){ //this.$list.addClass('animate_revealgrid'); //$items.addClass('animate_reveal'); }; $us.WBlog.prototype.afterAppendItems = function($items){ //$items.revealGridMD(); }; $(function(){ $('.w-blog').wBlog(); }); }(jQuery); /** * UpSolution Widget: w-portfolio */ jQuery(function($){ // TODO Make proper reveal grid animation for "load more" $us.WPortfolio.prototype.itemLoaded = function(itemID){ if (this.$container.hasClass('animate_revealgrid')) { this.items[itemID].usMod('animate', false).css('opacity', 0); } }; $us.WPortfolio.prototype.itemsLoaded = function($items){ if (this.$container.hasClass('animate_revealgrid')) { $items.revealGridMD(); } }; $('.w-portfolio').wPortfolio(); }); // Fixing contact form 7 semantics, when requested jQuery('.wpcf7').each(function(){ var $form = jQuery(this); // Removing wrong newlines $form.find('br').remove(); // Fixing quiz layout $form.find('.w-form-row .wpcf7-quiz').each(function(){ var $input = jQuery(this), $row = $input.closest('.w-form-row'), $field = $row.find('.w-form-row-field:first'), $label = $row.find('.wpcf7-quiz-label'); $label.insertBefore($field).attr('class', 'w-form-row-label'); $input.unwrap(); }); // Removing excess wrappers $form.find('.w-form-row-field > .wpcf7-form-control-wrap > .wpcf7-form-control').each(function(){ var $input = jQuery(this); if (($input.attr('type')||'').match(/^(text|email|url|tel|number|date|quiz|captcha)$/) || $input.is('textarea')){ // Moving wrapper classes to .w-form-field, and removing the span wrapper var wrapperClasses = $input.parent().get(0).className; $input.unwrap(); $input.parent().get(0).className += ' '+wrapperClasses; } }); // Transforming submit button $form.find('.w-form-row-field > .wpcf7-submit').each(function(){ var $input = jQuery(this), classes = $input.attr('class').split(' '), value = $input.attr('value') || ''; $input.siblings('p').remove(); if (jQuery.inArray('w-btn', classes) == -1){ classes.push('w-btn'); } var buttonHtml = ''; $input.replaceWith(buttonHtml); }); // Adjusting proper wrapper for select controller $form.find('.wpcf7-form-control-wrap > select').each(function(){ var $select = jQuery(this); if ( ! $select.attr('multiple')) $select.parent().addClass('type_select'); }); jQuery('').appendTo($form.find('.wpcf7-form-control-wrap')); $form.on('mailsent.wpcf7', function(){ $form.find('.w-form-row.not-empty').removeClass('not-empty'); }); }); // Zephyr special Material Design animations jQuery(function($){ "use strict"; /** * Material Design Ripples */ var $body = document.body || document.documentElement, $bodyStyle = $body.style, isTransitionsSupported = $bodyStyle.transition !== undefined || $bodyStyle.WebkitTransition !== undefined; var removeRipple = function($ripple) { $ripple.off(); if (isTransitionsSupported) { $ripple.addClass("ripple-out"); } else { $ripple.animate({ "opacity": 0 }, 100, function() { $ripple.trigger("transitionend"); }); } $ripple.on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ $ripple.remove(); }); }; $.fn.mdRipple = function(){ return this.each(function(){ var $element = $(this), $container, containerOffset, startTimer = null; if ( ! $element.find('.ripple-container').length){ $element.append(''); } $container = $element.find(".ripple-container"); // Storing last touch event for touchEnd coordinates var lastTouch = null; if ($.isMobile){ $element.on('touchstart touchmove', function(e){ e = e.originalEvent; if (e.touches.length === 1) { lastTouch = e.touches[0]; } }); } $element.on($.isMobile ? 'touchend' : 'mouseup', function(e){ var offsetLeft, offsetTop, offsetRight, $ripple = $(''), rippleSize = Math.max($element.outerWidth(), $element.outerHeight()) / Math.max(20, $ripple.outerWidth()) * 2.5; containerOffset = $container.offset(); // get pointer position if ( ! $.isMobile){ offsetLeft = e.pageX - containerOffset.left; offsetTop = e.pageY - containerOffset.top; } else if (lastTouch !== null) { offsetLeft = lastTouch.pageX - containerOffset.left; offsetTop = lastTouch.pageY - containerOffset.top; lastTouch = null; } else { return; } if ($('body').hasClass('rtl')) { offsetRight = $container.width() - offsetLeft; $ripple.css({right: offsetRight, top: offsetTop}); }else{ $ripple.css({left: offsetLeft, top: offsetTop}); } (function() { return window.getComputedStyle($ripple[0]).opacity; })(); $container.append($ripple); startTimer = setTimeout(function(){ $ripple.css({ "-webkit-transform": "scale(" + rippleSize + ")", "transform": "scale(" + rippleSize + ")" }); $ripple.addClass('ripple-on'); $ripple.data('animating', 'on'); $ripple.data('mousedown', 'on'); }, 25); setTimeout(function() { $ripple.data('animating', 'off'); removeRipple($ripple); }, 700); }); }); }; // Initialize MD Ripples jQuery('.w-btn, .w-nav-anchor, .w-portfolio-item-anchor, .w-tabs-item, .w-gallery-item, .g-filters-item, a > .w-blog-post-preview, .w-person.layout_card .w-person-image a, .w-iconbox.style_circle a .w-iconbox-icon').mdRipple(); /** * Material Design Reveal Grid: Show grid items with hierarchical timing * @param {Function} onFinish Function to call when the overall grid is revealed */ $.fn.revealGridMD = function(onFinish){ var items = $(this), shown = false, isRTL = $('.l-body').hasClass('rtl'); if (items.length == 0) return; var countSz = function(){ // The vector between the first item and the opposite x/y var mx = isRTL ? 100000 : 0, my = 0; // Retrieving items positions var sz = items.map(function(){ var $this = jQuery(this), pos = $this.position(); pos.width = $this.width(); pos.height = $this.height(); // Center point pos.cx = pos.left + parseInt(pos.width / 2); pos.cy = pos.top + parseInt(pos.height / 2); mx = Math[isRTL?'min':'max'](mx, pos.cx); my = Math.max(my, pos.cy); return pos; }); var wx = mx - sz[0].cx, wy = my - sz[0].cy, wlen = Math.abs(wx * wx + wy * wy); // Counting projection lengths for (var i = 0; i < sz.length; i++) { // Counting vector to this item var vx = sz[i].cx - sz[0].cx, vy = sz[i].cy - sz[0].cy; sz[i].delta = (vx * wx + vy * wy) / wlen; } return sz; }; var sz = countSz(); items.css('opacity', 0).each(function(i, item){ var $item = $(item); $item.performCSSTransition({ opacity: 1 }, 400, function(){ $item.removeClass('animate_reveal'); if (onFinish && typeof onFinish == 'function' && i == items.length - 1) onFinish(); }, null, 750 * sz[i].delta); }); }; $('.animate_revealgrid').each(function(){ $us.scroll.addWaypoint($(this), '15%', function($elm){ var $items = $elm.find('.animate_reveal'); if ($us.$body.hasClass('disable_effects')) return $items.removeClass('animate_reveal'); $items.revealGridMD(function(){ // Compatibility with isotope if ( ! $.fn.isotope) return; var isotope = $items.parent().data('isotope'); if (isotope){ $.each(isotope.items, function(index, item){ item.disableTransition(); }); } }); }); }); }); jQuery(function($){ $('.w-tabs .rev_slider').each(function(){ var $slider = $(this); $slider.bind("revolution.slide.onloaded",function (e) { $us.canvas.$container.on('contentChange', function(){ $slider.revredraw(); }); }); }); }); // source --> https://www.pixopa.com/wp-includes/js/comment-reply.min.js?ver=5.4.1 /*! This file is auto-generated */ window.addComment=function(s){var u,f,v,y=s.document,p={commentReplyClass:"comment-reply-link",cancelReplyId:"cancel-comment-reply-link",commentFormId:"commentform",temporaryFormId:"wp-temp-form-div",parentIdFieldId:"comment_parent",postIdFieldId:"comment_post_ID"},e=s.MutationObserver||s.WebKitMutationObserver||s.MozMutationObserver,i="querySelector"in y&&"addEventListener"in s,n=!!y.documentElement.dataset;function t(){r(),function(){if(!e)return;new e(d).observe(y.body,{childList:!0,subtree:!0})}()}function r(e){if(i&&(u=I(p.cancelReplyId),f=I(p.commentFormId),u)){u.addEventListener("touchstart",a),u.addEventListener("click",a);var t=function(e){if((e.metaKey||e.ctrlKey)&&13===e.keyCode)return f.removeEventListener("keydown",t),e.preventDefault(),f.submit.click(),!1};f&&f.addEventListener("keydown",t);for(var n,r=function(e){var t,n=p.commentReplyClass;e&&e.childNodes||(e=y);t=y.getElementsByClassName?e.getElementsByClassName(n):e.querySelectorAll("."+n);return t}(e),d=0,o=r.length;d https://www.pixopa.com/wp-includes/js/wp-embed.min.js?ver=5.4.1 /*! This file is auto-generated */ !function(d,l){"use strict";var e=!1,o=!1;if(l.querySelector)if(d.addEventListener)e=!0;if(d.wp=d.wp||{},!d.wp.receiveEmbedMessage)if(d.wp.receiveEmbedMessage=function(e){var t=e.data;if(t)if(t.secret||t.message||t.value)if(!/[^a-zA-Z0-9]/.test(t.secret)){var r,a,i,s,n,o=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),c=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]');for(r=0;r